home *** CD-ROM | disk | FTP | other *** search
/ Mac Power 1997 November / MACPOWER-1997-11.ISO.7z / MACPOWER-1997-11.ISO / AMUG / MUSIC / bol-processor-271-appl.sit / bol-processor-271-appl / BP2 help < prev    next >
Text File  |  1997-06-15  |  134KB  |  2,418 lines

  1. // This is the help file for Bol Processor BP2.7, which is accessed "on-line".
  2. // When editing it, beware that BP2 looks for prefixes, hence if an item is
  3. // the prefix of another item then it should precede it in this file.
  4. ### Help
  5. ・ To access on-line help, type cmd-? or select "Help" in the "Action" menu.
  6. The cursor becomes a question mark.  Select a menu command, click a button or
  7. select any word or group of words you need information about.
  8. ・ In the "Help" text, expressions between quotes are hyperlinks to more entries.
  9. ### BP2 help
  10. The information you are reading now is taken from a text file called "BP2 help".
  11. ### Hypertext (HTML)
  12. HTML (HyperText Markup Language) is a universal text format for electronic documents.
  13. Documents in HTML format can be read by ヤWeb browsersユ such as Mosaic or Netscape Navigator.
  14. Use this format for exchanging BP2 text files via the Internet or multiplatform supports
  15.     like CD-ROMs.
  16. BP2 automatically identifies and converts HTML files.  If a window (grammar, alphabet, script, etc.)
  17.     contains text loaded from a HTML file, it will be saved in the same format unless its name is
  18.     changed and a different format is selected by the user.  (See "BP2 file format").
  19. BP2 identifies the file as a HTML one after finding:
  20. ・ flag "<HTML>" or "<html>";
  21. ・ a flag "</ノ>" where "ノ" is a non-empty string of alphabetic chars;
  22. ・ a token "&ノ;" where "ノ" is a non-empty string of alphabetic chars;
  23. ・ a token "&#ノ;" where "ノ" is a non-empty string of 1 to 3 digits.
  24. Conversion from HTML to BP2 removes all <> </> flags and translates tokens "&ノ;" to
  25.     the Macintosh character set.  Unknown characters are replaced with ヤ・ユ.
  26. Conversion is suspended if a "</html>" flag is encountered.  It is resumed with "<html>".
  27. When converting text to HTML format, BP2 converts high-ASCII characters and a few
  28.     punctuation signs (as per the HTML 3.0 specification) to HTML tokens.  The conversion is
  29.     consistent with the widely accepted mapping between Macintosh characters and ISO 8859-1
  30.     (Latin-1 code).
  31. Character ヤノユ (used for "Undetermined rests") is converted to "_rest".
  32. HTML files are sliced to approximately 80 character paragraphs terminated with CR and LF, which
  33. makes them compatible with DOS/Windows.
  34. ### Types-creators
  35. ・ The following are the prefixes, file types and creators of Macintosh files handled by BP2.
  36. Prefix      type    creator   description
  37. -da         TEXT    Bel0      Bol Processor BP2 data
  38. -kb         BP02    Bel0      Bol Processor BP2 "keyboard"
  39. -mi         BP03    Bel0      Bol Processor BP2 "sound-object prototypes"
  40. <none>      BP04    Bel0      Bol Processor BP2 decisions
  41. -gr         BP05    Bel0      Bol Processor BP2 grammar
  42. -ho         BP06    Bel0      Bol Processor BP2 alphabet
  43. -da         BP07    Bel0      Bol Processor BP2 data (old versions)
  44. -in         BP08    Bel0      Bol Processor BP2 interaction
  45. -se         BP09    Bel0      Bol Processor BP2 settings
  46. -wg         BP10    Bel0      Bol Processor BP2 weights
  47. +sc         BP11    Bel0      Bol Processor BP2 script
  48. -gl         BP12    Bel0      Bol Processor BP2 glossary
  49. -tb         BP13    Bel0      Bol Processor BP2 time base
  50. -cs         BP14    Bel0      Bol Processor BP2 "Csound instrument file"
  51. <none>      Midi    ????      MIDI file type 0, 1 or 2
  52. ・ All text files may also be stored in "Hypertext (HTML)" format with signature 'MOSS'.
  53. ### BP2 file formats
  54. When saving a file for the first time or after changing its name, the user is given four format
  55. options:
  56. ・ Normal BP2 file (signature 'Bel0', file type depending on type of data (see "Types-creators");
  57. ・ Pure text (signature 'Bel0', file type 'TEXT');
  58. ・ HTML text (signature 'MOSS', file type 'TEXT');
  59. ・ HTML BP2 (signature 'MOSS', file type depending on type of data (see "Types-creators");
  60. Signature 'Bel0' (registered with Apple) identifies BP2. Clicking such files will automatically
  61.     launch BP2.
  62. Signature 'MOSS' makes the file directly compatible with Netscape Navigator.
  63. Use HTML BP2 if the file should be reused by BP2 while being readable by Web browsers.
  64. Use HTML text if the file should be in pure text format (for instance it needs to be inserted
  65.     in an electronic mail message).
  66. ・ Pure text files can also be opened by BP2: select ヤOpenユ from the ヤFileユ menu with the
  67.     ヤoptionユ key down.
  68. ・ Csound scores are stored as Mac text files (default), or DOS or Unix depending on the
  69.     choice in the "File saving preferences" dialog accessed from "Settings"
  70. ・ MIDI files are saved with type 'Midi' and creator '????'.
  71. ### Why don't I hear any sound?
  72. BP2 produces sounds on a MIDI system. A MIDI device (synthesizer or sampler) should be connected
  73.     to the Macintosh via a standard MIDI interface hooked to the modem port.
  74. ・ It is also possible to connect the MIDI interface to the printer port, but in this case AppleTalk
  75.     must be inactive (unless the machine is using EtherTalk network), and the connection option
  76.     needs to be changed to "Printer output" in the ヤMiscユ menu of BP2.  The option may be saved
  77.     by selecting "Save settings" in the "File menu" and saving the settings as ヤ-se.startupユ in
  78.     the same folder as BP2.
  79. ・ Note that the printer port on some portable computers such as the PowerBook 150 does not
  80.     work with MIDI. It will later when BP2 is compatible with Opcode Music System (OMS).
  81. ・ Open the "Control panel" in the "Windows" menu and click "Check MIDI" button. Choose channel 1.
  82. ・ If no sound is heard check the entire MIDI setup: cables, input/output, volume faders,
  83.     channel assignments, etc.  Remember that the interface, MIDI device(s) and amplifiers should
  84.     be powered!
  85. ・ BP2 uses its own MIDI driver, no extension in the System folder. It may not work if the MIDI
  86.     interface is already busy with another application or set-up in a particular way by Apple
  87.     MIDI manager or Opcode Music System.  It is a good idea to deactivate these extensions and
  88.     control panels in case other solutions have failed.
  89. ・ BP2 also produces Csound scores and MIDI files.
  90. ### How can I make music with BP2?
  91. There are three ways of producing music with BP2:
  92. ・ A grammar may describe a set of musical pieces produced randomly (a formal language) and played
  93.     in sequence -- for instance Mozart's musical dice, see ヤ-gr.Mozartユ.
  94.     This is the ヤImprovizeユ mode, in which MIDI input may also be used to monitor processes
  95.     interactively, e.g. synchronise the performance (see the "Interaction" window).
  96. ・ A grammar may otherwise describe a unique musical piece.  This is particularly useful for
  97.     complex structures that require a comprehensible hierarchical description.
  98. ・ The third method is to edit or import a musical score, ignoring the inference system.
  99. ・ Related topics:
  100. "How does the output of BP2 look like?"
  101. "How does the input of BP2 look like?"
  102. "Why don't I hear any sound?"
  103. ### What style of music is BP2 dealing with?
  104. ・ BP2 is not designed for a particular musical style. It stemmed out of formalizing
  105.     music representation and composition tasks in the context of non-western music, notably
  106.     North-Indian rhythm. For this reason it focused on text-oriented representations and formal
  107.     grammmars.  ヤBol Processorユ originates from the word ヤbolユ (Hindi/Urdu ヤbolnaユ, to speak)
  108.     designating the onomatopeic expressions mapped to strokes on North Indian drums.
  109. ・ When MIDI output was designed, elementary musical ヤgesturesユ that produced sounds on drums
  110.     were replaced with "sound-objects", i.e. arbitrary sequences of events encoded as MIDI messages.
  111. ・ Recently, simplified sound-objects named "simple notes" were introduced to facilitate work
  112.     with western tonal systems in English, French or Indian "note conventions".
  113. ・ BP2 is now able to deal with polyphony, and does it in a smart way. See "polymetric structures".
  114. ・ BP2 also deals with incomplete representations of polyrhythmic sequences.
  115.     See "period notation".
  116. ・ BP2 is able to control all MIDI parameters, including continuous parameters such as pitch bend,
  117.     polyphonic pressure, panoramic, etc.  See "performance controls".
  118. ・ BP2 has interactive features used in the "improvize mode".  It responds to MIDI messages
  119.     (see "Interactive mode") and to "Apple Events".
  120. ・ Thanks to Csound, BP2 bypasses limitations of MIDI, and takes advantage of both environments.
  121.     (See "Csound implementation")
  122. ### How does the output of BP2 look like?
  123. ・ There are three representation levels:
  124. 1) The symbolic level, at which music is represented as a TEXT score. This score uses either
  125.     "simple notes" or "sound-objects" completed with "performance controls".
  126.     Polyphonic items use "polymetric expressions".
  127.     Sequences may use the "period notation".
  128. 2) The graphic level, at which "simple notes" or "sound-objects" are shown with their actual
  129.     physical timings.
  130. 3) The sound level, a flow of MIDI messages sent in real time to a MIDI device, a MIDI
  131.     file or a Csound score.
  132. ・ Output options are set in the "Settings" window.  If "Display items" is checked then
  133.     musical items are first displayed as text scores.  This is not recommended for long items.
  134.     If "Show graphics" is checked then graphic scores are displayed while items are played on the
  135.     MIDI output.  If none is checked then items are played directly, but for each item the option
  136.     is given to display the text score.
  137. ・ A text score may be displayed in graphic and played on the MIDI output: select the text and do
  138.     "Play selection" in the "Action" menu.
  139. ### How does the input of BP2 look like?
  140. ・ A score in text format may be selected and played on the MIDI output: select "Play selection"
  141.     in the "Action" menu.  Try it for example on "C5 C5 C5 D5 E5_ D5_ C5 E5 D5 D5 C5_ _ _".
  142. ・ Examples of (less trivial) text format scores are stored in ヤ-daユ files that may be loaded to
  143.     the "Data" window.  There are more examples in the enclosed data-base "TryAppleEvents.fm"
  144.     which may be opened under Claris FileMaker Pro.
  145. ・ A grammar is the formal description of a process producing musical text scores which BP2 is able
  146.     to play on its MIDI output.  Load for instance ヤ-gr.Mozartユ in the "Grammar" window, then
  147.     type command-R or select "Produce items" in the "Action" window.
  148. ・ A script is a sequence of meta-instructions performing all operations automatically in BP2.
  149.     Scripts are discussed in the initial part ("QuickStart") of the enclosed MS-Word document
  150.     "BP2 doc - MS Word".
  151. ・ MIDI files type 0, 1 or 2 can be imported to create "sound-object prototypes".
  152. ・ Csound scores can be imported to create "sound-object prototypes".
  153. ・ BP2 responds to input MIDI messages.  See "Interactive mode".
  154. ・ BP2 works in a client-server environment. It responds to "Apple Events" that may launch all
  155.     kinds of processes.  The data-base "TryAppleEvents.fm" is a good illustration of this.
  156. ### Interactive mode
  157. In this mode, BP2 is able to respond in real time to MIDI messages that are assigned certain tasks.
  158. Assignments are listed as script instructions in the "Interaction" window.
  159.     (Open ヤ-in.abc1ユ to see an example)
  160. ・ For instance, instruction
  161.         IN Param K1 = controller #7 channel 16
  162.     assigns controller #7 on channel 16 to fix the value of parameter K1.  This parameter may control
  163.     weights in grammar rules, velocities, etc.
  164. ・ Related topic: "Apple Events"
  165. ### Where can I get the latest version of BP2?
  166. ・ Bol Processor BP2 is available on Info-Mac mirror sites
  167.     (list available under ftp://ftp.hawaii.edu/mirrors/info-mac/help/)
  168. ・ A few sites in Europe:
  169. ftp://ftp.uni-stuttgart.de/pub/systems/mac/info-mac/
  170. ftp://ftp.ibp.fr/pub/mac/info-mac/ 
  171. ・ In North America:
  172. ftp://ftp.agt.net/pub/info-mac/
  173. http://mirror.apple.com/
  174. http://hyperarchive.lcs.mit.edu/HyperArchive.html
  175. ・ In Africa:
  176. ftp://ftp.is.co.za/info-mac/
  177. ・ In Asia and Pacific:
  178. ftp://ftp.hk.super.net/pub/mirror/info-mac/ 
  179. ftp://ftp.center.osaka-u.ac.jp/info-mac/ 
  180. http://mirrors.vuw.ac.nz/info-mac/
  181. ftp://ftp.nus.sg/pub/mac/
  182. ftp://ftp.hawaii.edu/mirrors/info-mac/gst/midi/
  183. ### How do I register for BP2?
  184. Bol Processor BP2 is a shareware product.
  185. Fee: 50 US dollars (30 dollars for students, unemployed or citizens of developing countries)
  186. ・ Not a commercial product, BP2 is meant to be shared by the international community of music
  187.     researchers, musicians and music lovers.  Unregistered users shouldn't fear police raids!
  188.     However, your contribution will be highly appreciated as the money is entirely
  189.     invested on music/development documentation, hardware and software.
  190.     (Fees received in 1995 allowed me to buy Opcode MAX.)
  191. ・ We are committed to providing continuous support for BP2, in terms of responding to individual
  192.     inquiries, as well as in making fixes, upgrades and documentation available to registered
  193.     users.
  194. ・ To register, send a cheque of equivalent USD amount in any convertible currency to:
  195.     Bernard Bel, Centre de Sciences Humaines (CSH)
  196.     2, Aurangzeb road, New Delhi 110 011 (India)
  197.     E-mail: bel@csh.delnet.ernet.in    Fax: (91) 11 301 8480
  198. ### Where can I find more information?
  199. ・ If you are a new user, a quick visit is recommended:
  200.     If you have Clarisェ FileMaker Pro 3.0, then double-click the database "TryAppleEvents.fm".
  201.     It calls BP2 as a server to play simple examples of music, grammars and scripts.
  202.     Then print the MS-Word document extracted from "BP2doc.sea" and follow the "QuickStart"
  203.     manual step by step.
  204. ・ BP2 is documented on-line. You are reading this documentation now!
  205. To get information about any feature, type command-? or select "Help" in the "Action" menu.
  206.     The cursor is changed to a question mark. Then click any button, select any menu item or
  207.     any segment of text to get information.
  208. In this "Help" text, expressions between quotes are hyperlinks to more entries.
  209. ・ You may also open "BP2 help" with a word-processor.
  210. ・ Contact the designer: bel@csh.delnet.ernet.in, even if you haven't paid the shareware.
  211.     First make sure the information you are looking for is not in the documentation!
  212. ### Action menu
  213. Containst most commands of BP2. You may document them with the on-line "Help".
  214. ### About BP2ノ
  215. Displays version of BP2.
  216. ### Variables
  217. BP2 recognizes strings starting with an uppercase character as "variables" in grammars
  218.     or in its glossary. It creates a variable if it is not already there, so be careful
  219.     with spelling mistakes.
  220. ・ You may however start a variable with a lower-case character provided that you write
  221.     it between |vertical bars|.
  222. ・ Variable names may be of any length and may contain any character (standard or
  223.     extended), digit, or punctuation symbol in the set: ¥ - _ # @ * % $ " % ' ・
  224. ・ Examples of well-formed variables:
  225.       MyNewTrick  Good_enough  |behind_the_bars|  X67$-J  Big・mac  The"new"thing
  226.       It's_there    De_No鼠_ˆ_P衛ues
  227.       Peter-Piper-pick'd-a-pick-of-pickl'd-pepper
  228. ・ Related topic: "Terminal alphabet"
  229. ### Polymetric structures
  230. A structure of "sound-objects" represented as a "polymetric expression".
  231. ### Polymetric expressions
  232. ・ An expression denoting a polyphonic or/and polyrhythmic structure of "sound-objects".
  233.     Example:
  234.     {C4 D4 E4,G3 E3} (brackets optional) means that "C4 D4 E4" will be played in the same
  235.     time as "G3 E3".
  236. ・ BP2 manages to adjust durations.  Here, the duration of each beat is determined by the
  237.     first beat "C4 D4 E4", hence three beats. It will be interpreted:
  238.       /2 {C4_ D4_ E4_,G3_ _ E3 _ _}
  239.     yielding the phase diagram:
  240.         C4 _  D4 _  E4 _
  241.         G3 _  _  E3 _  _
  242. ・ BP2 uses the same algorithm to deal with polymetric expressions and with "period notation".
  243. ・ A polymetric expression can contain another polymetric expression, including expressions in
  244.     "period notation".
  245.     Try to play: {C4 D4 E4,{G3,C3} E3} for instance [with "English convention" checked
  246.         in the ヤMiscユ menu].
  247. ・ Many commented examples will be found in "-da.checkPoly".
  248. ### Undetermined rests
  249. ・ These are notated ヤ_restユ.
  250.     The old notation ヤノユ (be careful: this is a single character, not three periods!)
  251.     is still valid, but it is not recommended because of character conversion.
  252. Notated ヤノユ (be careful: this is a single character, not three periods!) or equivalently ヤ_restユ
  253. ・ Undetermined rests are used in fields of "polymetric expressions" or in beats of the
  254.     "period notation". The interpreter determines their durations as the ones yielding
  255.     the simplest expanded expression.
  256. ・ For instance, the sequence
  257.        a b c d.e _rest f.g h _rest i     (also notated    a b c d.e ノ f.g h ノ i)
  258.     will be expanded as:
  259.        a b c d.e - _ f.g h - i
  260. ・ Similarly, the polymetric expression
  261.        {3/2 c d e, _rest f g}       (also notated     {3/2 c d e, ノ f g})
  262.     will be expanded as:
  263.         /2 {- _ _ c _ d _ e _,- _ _ _ _ f _ g _}
  264. ・ Each field of a polymetric expression (or each beat of a sequence) may not contain
  265.    more than one undetermined rest.
  266. ### Period notation
  267. ・ Periods are used to indicate ヤbeatsユ, i.e. sequences of "sound-objects" that are
  268.     constrained to equal symbolic durations. For instance,
  269.         {C4 D4 E4.G3 E3}    (Brackets {} are optional)
  270.     means that "C4 D4 E4" will be played with the same duration as "G3 E3".
  271. ・ The duration of each beat is determined by the first beat "C4 D4 E4", hence three
  272.     time units. It will be interpreted:
  273.         /2 C4_ D4_ E4_.G3_ _ E3_ _
  274. ・ BP2 uses the same algorithm to deal with period notation and with "polymetric expressions".
  275.     Thus, {C4 D4 E4,G3 E3}  (the period has been replaced with a comma)
  276.     will be interpreted:
  277.         /2 {C4_ D4_ E4_,G3_ _ E3_ _}
  278.     yielding the phase diagram:
  279.         C4 _  D4 _  E4 _
  280.         G3 _  _  E3 _  _
  281. ・ Many commented examples will be found in example file ヤ-da.checkPolyユ.
  282. ### Terminal symbols
  283. See "Terminal alphabet"
  284. ### Terminal alphabet
  285. ・ A ヤvocabularyユ of arbitrary words (terminal symbols) designating "sound-objects".
  286. ・ Each word is defined in the ヤalphabetユ window saved as "-ho.filename".
  287. ・ A terminal symbol may also be defined at "compile time" if it appears between
  288.     single quotes in the grammar, or if it is used in an out-time "sound-object":
  289.         <<iAmAnOutTimeSoundObject>>.
  290. ・ A terminal symbol must start with a lower-case character (a..z) or any symbol in the
  291.     set:
  292.         \≠ヤ…†‡ˆ炎旧克署葬灯楓利劒屆撼洌セソヒフヘホマリァッオカキクケストニエ#・
  293. ・ Other characters in a terminal symbol may be any character (a..z, A..Z) or a
  294.     character in the above set, or characters in additional set:
  295.         0123456789#%*@「」、ラ$ィゥェ¥'" 。`ォャューアイウサシタチテヌネメモヤユヨ
  296. ・ The above restrictions do NOT apply to terminal symbols defined between single quotes
  297.     in grammars.
  298. ・ You may define relations (homomorphisms) in a given alphabet.  See: "homomorphism".
  299. ・ Terminal symbols are mapped to "sound-object prototypes" thanks to the information
  300.     contained in "-mi.filename".  The name of this file should be inserted on top of the
  301.     ヤalphabetユ window.
  302. ・ BP2 also recognizes predefined terminal symbols called "simple notes".
  303. ・ Related topic: "Variables"
  304. ### Metavariables
  305. See "Wild cards"
  306. ### Wild cards
  307. Symbols ヤ?ユ, ヤ?1ユ, ヤ?2ユ, ... ヤ?nユ are used as wild cards in grammar rules.  They may
  308.     be instantiated as a single "terminal symbol", "simple note", "variable", bracket,
  309.     "out-time object", "synchronization tag", "time pattern" or "performance control".
  310. ・ ヤ?ユ (an old notation) is equivalent to ヤ?1ユ.
  311. ・ If the expression contains several wild cards ヤ?nユ, values are checked for pattern
  312.     matching.  For instance,
  313.         ?1 ?3 ?2 ?2 ?1 ? ?3
  314.     may be instantiated as a pattern "xyzzxty" in which occurrences of x, y and z must be
  315.     identical.
  316. ・ The same wildcards may be found in the right argument of a rule.  For instance, the
  317.     following rule will reverse the order of two (distinct) symbols:
  318.         ?1 ?2 --> ?2 ?1
  319. ### Compile time
  320. The time when a grammar is being compiled, or some data is being "tokenized". This may
  321.     be opposed to "performance time".
  322. ### Tokenized data
  323. Grammars and musical items are represented with reserved words, "terminal symbols"
  324.     and variables. Before using them, BP2 replaces them with tokens, i.e. numeric
  325.     codes. These codes are not visible to users.
  326. ### Performance time
  327. The time when a musical item is being played on the sound output. This may be opposed
  328.     to "compile time".
  329. ### Out-time sound-object
  330. ・ It appears between angle brackets: <<this is an out-time sound-object>>.
  331. ・ It contains the same sequence of events as an ordinary "sound-object", but its duration
  332.     is forced to zero.  If its label does not appear in the "Terminal alphabet", a new
  333.     terminal symbol will be created at "compile time".
  334. ### Null string
  335. A string representing an empty sequence (of "sound-objects").  You may use
  336.     "nil", "lambda", "empty" or "null" (without quotes) to designate a null string.  You
  337.     may also leave the space blank. These are three equivalent notations for the same
  338.     rule:
  339.     S --> nil
  340.     S --> lambda
  341.     S --> empty
  342.     S --> null
  343.     S -->
  344. ### Simple notes
  345. These are predefined terminal symbols mapped to predefined "sound-objects"
  346.     containing only a NoteOn / NoteOn pair of MIDI messages.  These "sound-objects"
  347.     are relocatable and have pivots at their beginnings. They can be rescaled at will,
  348.     they can be truncated or covered by neighbouring "sound-objects".  Their "pre-roll" and
  349.     "post-roll" settings are nil.
  350. ・ The conventional 440Hz tone may be written ヤA4ユ, ヤla3ユ or ヤdha4ユ, depending on the
  351.     note convention set in the ヤMiscユ menu, and the one in the "Tuning" dialog.
  352. ・ See: "English convention", "French convention", "Indian convention","Key numbers".
  353. ### Tuning dialog
  354. This dialog makes it possible to modify the MIDI keyboard mapping and diapason
  355.     reference used by Csound.
  356. ・ Usually, key 60 is assigned to C4 (do3 in French, sa4 in Indian), but some MIDI programs,
  357.     notably old versions of BP2, use alternate note names such as C5 (do4).
  358. ・ The diapason value has no effect on the MIDI output.  Its is used by Csound for
  359.     instruments requiring a "cps (Hz)" format for pitch.
  360. ### Csound
  361. Displays the Csound score attached to this "sound-object prototype".
  362. ### Csound tuning
  363. See "Tuning dialog".
  364. ### A4 / la3 / dha4 frequency is
  365. See "Tuning dialog".
  366. ### MIDI mapping
  367. See "Tuning dialog".
  368. ### C4 / do3 / sa4  is MIDI key
  369. See "Tuning dialog".
  370. ・ A4 is conventionally 440Hz but you may want to change it if your Mac gets too hot :-)
  371. ### Relocatable sound-object
  372. A "sound-object" that may be relocated by the "time-setting algorithm".
  373. ### Sound objects
  374. See "Sound-objects"
  375. ### Sound-objects
  376. See the reference manual and publications.
  377. ・ In short, a sound-object in BP2 is a sequence of ヤelementaryユ events, such as MIDI
  378.     or Csound instructions.
  379. ・ A typical simple sound-object is a "simple note", i.e. a NoteOn/NoteOff
  380.     pair on the same MIDI key and channel.
  381. ・ Sound-objects are designated by "terminal symbols". Each object is mapped to
  382.     a unique "sound-object prototype" bearing the same name, which defines its metric
  383.     and topologic properties.  (See reference manual).
  384. ### Sound-object prototypes
  385. These contain information about "sound-objects" bearing the same name: the list of
  386. elementary events, and metric and topologic properties used by the "time-setting algorithm".
  387. ・ Elementary events may be MIDI events, Csound events, or both.
  388. ### Time-setting algorithm
  389. An algorithm used by BP2 to calculate the timings of elementary events (e.g.
  390.    MIDI or Csound events) in a musical item. It takes into account the properties of
  391.     "sound-objects" (defined by their "sound-object prototypes") and may relocate or
  392.     truncate objects in order to satisfy all constraints arising therefrom.
  393. ### Homomorphism
  394. This is an optional relation on the "terminal alphabet" used by a grammar. It is
  395.     defined over all the terminal symbols and identified by a label. For
  396.     instance, let us call TRANS the one-semitone upward transposition in an alphabet of
  397.     notes. The alphabet file (saved as "-ho.mynotes") would begin like this:
  398.         TRANS
  399.         do0 --> do#0 --> re0 --> re#0  etc... --> si9
  400. ・ If a "terminal alphabet" uses no homomorphism then arrows "-->" should of course not
  401.     be found.
  402. ・ You can define several homomorphisms in the same alphabet. Separate them by lines
  403.     of hyphens (just like subgrammars).
  404. ・ If an homomorphism has been declared, the last terminal of a line is mapped to
  405.     itself, unless it is defined cyclically. In the example above it would mean that
  406.     si9 --> si9.  But we could as well use a cyclic definition:
  407.         do0 --> do#0 --> re0 --> re#0  etc... --> si9 --> do0
  408. ### Derivation mode
  409. See "Subgrammar type" and "Rule derivation mode"
  410. ### Subgrammar
  411. A grammar may be "sliced" in several subgrammars that will be applied successively
  412.     to the work string for producing derivations.  A new subgrammar is applied only
  413.     once there is no more candidate rule in the current subgrammar. You may however
  414.     bypass this rule by using jumps like _goto() or _failed().
  415. ・ In analysis (parsing) mode, subgrammars are applied in the reverse order.
  416. ### Subgrammar type
  417. The strategy followed by the "inference engine" to produce or analyze an item using
  418.     the rules of this subgrammar. See: "RND", "ORD", "LIN", "SUB", "SUB1".
  419. ### Inference engine
  420. The term is borrowed from expert systems. It designates the process by which rules
  421.     in a grammar are selected and and applied by the work string.  The inference engine
  422.     may perform a "production" (starting from a start string, usually ヤSユ) or a
  423.     "membership test" (analysis, parsing) assessing whether a given string belongs to
  424.     the language generated by the grammar.
  425. ・ "Production" is also called "modus ponens", and analysis "modus tollens", but this
  426.     terminology is more appropriate for inference engines based on logical inference.
  427. ### Production
  428. See "Inference engine".
  429. ### Analysis
  430. See "Inference engine".
  431. ### Parsing
  432. See "Inference engine".
  433. ### Rule derivation mode
  434. In "production", there are three derivation modes for rules in a subgrammar:
  435. ・ RND (default mode): the position of the derivation is choosen randomly
  436.     in the work string;
  437. ・ LEFT: the position of the derivation is the leftmost occurrence of the left argument
  438.     of this rule;
  439. ・ RIGHT: the position of the derivation is the rightmost occurrence of the left argument
  440.     of this rule;
  441. ・ If a subgrammar is of "LIN" type then all rules are applied in "LEFT" mode.
  442. ### Programmed grammars
  443. See "flags"
  444. ### Flags
  445. Flags are integer global variables indicating particular states during production by
  446.     a grammar.  This is a generalisation of "programmed grammars".
  447. ・ A rule like: X --> a /myflag/
  448.     creates a flag labelled ヤmyflagユ and set its value to 1.
  449. ・ A rule like: /myflag/ X --> a
  450.     will only be candidate if ヤmyflagユ has previously be created and its value is positive.
  451. ・ Unlike in previous versions of BP2, the flag value is not modified unless specified:
  452.         /myflag - 1/ X --> a
  453. ・ Flags may be positive or negative in range [-32768,32767].
  454. ・ Flag names may contain up to 30 characters.  Any character may be used except:
  455.     / + - = < > イ ウ ュ  and tabulations or spaces
  456. ・ Other flag features:
  457. X --> a /myflag +3/   increments the value of ヤmyflagユ by 3 units.
  458. X --> a /myflag -5/   decrements the value of ヤmyflagユ by 5 units.  Negative values
  459.     are accepted.
  460. X --> a /myflag = 3/   assigns 3 to ヤmyflagユ.
  461. /myflag +3/ X --> a   checks that ヤmyflagユ is positive, and if so, makes the rule
  462.     candidate.  When the rule is fired, the value of ヤmyflagユ is incremented by 3 units.
  463. /myflag -5/ X --> a   checks that ヤmyflagユ is positive, and if so, makes the rule
  464.     candidate.  When the rule is fired, the value of ヤmyflagユ is incremented by 5 units.
  465. /myflag = 3/ X --> a   checks that ヤmyflagユ is equal to 3, and if so, makes the rule
  466.     candidate.
  467. /myflag ュ 3/ X --> a   checks that ヤmyflagユ is unequal to 3, and if so, makes the rule
  468.     candidate.
  469. /myflag < 3/ X --> a   checks that ヤmyflagユ is smaller than 3, and if so, makes the rule
  470.     candidate.
  471. /myflag > 3/ X --> a   checks that ヤmyflagユ is greater than 3, and if so, makes the rule
  472.     candidate.
  473. /myflag イ 3/ X --> a   checks that ヤmyflagユ is smaller or equal to 3, and if so, makes
  474.     the rule candidate.
  475. /myflag ウ 3/ X --> a   checks that ヤmyflagユ is greater or equal to 3, and if so, makes
  476.     the rule candidate.
  477. ・ Be careful that ヤ=ユ is the assignment operator if found in the right argument of a
  478.     rule, and a comparison operator otherwise.
  479. ・ A rule may contain several flag conditions, e.g.:
  480.         /myflag ウ 3/ /myflag < 20/ /otherflag = 4/ X --> a
  481. ・ In assignments and comparisons, numbers may be replaced with other flags
  482.     or global variables K1, K2, etc., e.g.:
  483.     X -->    a   /flag1 = K1/ /flag2 = flag1/
  484.     /flag1 > K19/   X    -->    b
  485.     /flag2 ュ flag3/ X     -->    c
  486. ・ See for example ヤ-gr.tryflagユ, ヤ-gr.tryflag2ユ, ヤ-gr.tryflag3ユ
  487. ・ Note: flag syntax is likely to evolve but it will remain consistent with this one.
  488. ### BP grammar
  489. See "true BP grammar"
  490. ### 0 (Number streaks fromノ)
  491. Refers to the numbering of time streaks on graphics
  492. ### 1 (Number streaks fromノ)
  493. Refers to the numbering of time streaks on graphics
  494. ### RND [Subgrammar type or rule derivation mode]
  495. ・ As a subgrammar type, it means that when producing an item rules may be used in
  496.     a random order.  When analysing an item, RND works like ORD.
  497. ・ As a rule derivation mode, it means that the position of the derivation, when
  498.     producing items, may be choosen randomly. In parsing mode (analysis), position is
  499.     tried from right to left. (See rightmost context-sensitive derivation in publications)
  500. ### LEFT [Rule derivation mode]
  501. When producing an item, this rule will be applied to the leftmost occurrence of
  502.     the left argument in the work string. In parsing mode, the rightmost occurrence
  503.     of the right argument will be searched.
  504. ### Work string
  505. The string representing the musical item being processed by the grammar. In "production"
  506.     mode, it starts with the start string ヤSユ.  In analysis (parsing) mode, it starts
  507.     with the string under analysis.
  508. ### RIGHT [Rule derivation mode]
  509. When producing an item, this rule will be applied to the rightmost occurrence of
  510.     the left argument in the work string. In parsing mode, the leftmost occurrence
  511.     of the right argument will be searched.
  512. ### ORD [Subgrammar type]
  513. A subgrammar the rules of which should be applied in (top-down) order in "production",
  514.     and bottom-up order in analysis (parsing).
  515. ・ Each rule is applied reatedly until it is no longer candidate.
  516. ### LIN [Subgrammar type]
  517. A subgrammar using (context-sensitive) leftmost derivation in "production", and
  518.     (context-sensitive) rightmost derivation in analysis.  See reference manual and
  519.     related publications.
  520. ### SUB [Subgrammar type]
  521. A subgrammar using (context-sensitive) substitutions in "production". (It cannot be
  522.     used for parsing.)  A substitution is the simultaneous application of all candidate
  523.     rules in the subgrammar.
  524. ### SUB1 [Subgrammar type]
  525. Similar to SUB, but substitutions are performed only once. This is notably used in a
  526.     glossary.
  527. ### Glossary
  528. ・ A glossary is a special subgrammar that is applied to the work string just before
  529.     it is played on the MIDI outup or displayed on the graphic window.  A convenient
  530.     use of glossary is to define instructions that are particular to the sound system.
  531. ・ For instance, -gl.GeneralMIDI contains the code needed to select sound ヤpatchesユ on
  532.     any synthesizer in the "General MIDI" standard.
  533. ### TEM [Subgrammar type]
  534. A list of ヤtemplatesユ used by a true BP grammar. See reference manual.
  535. ### Save
  536. Saves the current window.
  537. ### Clear
  538. Clears the current window. This is also a script command.
  539. ### REC
  540. Starts/stops recording actions as a script (in the script window)
  541. ### _goto(igram,irul) [Grammar procedure]
  542. This procedure is found in the right argument of a rule.
  543. ・ _goto(igram,irul) will cause BP2 to jump to subgrammar igram, rule irul, when the rule
  544.     that contains it has been applied.  If (igram,irul) does not point at a candidate rule,
  545.     BP2 will either execute a "_failed" conditional jump or search a candidate rule in
  546.     subgrammar igram.  If none is found it will jump to subgrammar igram+1, etc. as usual.
  547. ・ _goto(igram,0) causes to jump to subgrammar igram and go on selecting rules according to the
  548.     subgrammar type.
  549. ### _failed(igram,irul) [Grammar procedure]
  550. This procedure is found in the right argument of a rule.
  551. ・ A conditional jump to another subgrammar or another specific rule in a
  552.     subgrammar.  Its syntax is: _failed(igram,irul) in which igram and irul have the
  553.     same meanings as in "_goto".
  554. ・ The jump will be performed if the rule was selected by a preceding "_goto" or "_failed"
  555.     and it is not a candidate rule.
  556. ### _repeat(n) [Grammar procedure]
  557. This procedure is found in the right argument of a rule.
  558. ・ Indicates that the current rule should be tried n times.
  559. ・ Alternate syntaxes are _repeat(Kx) and _repeat(Kx = n) where Kx is a parameter
  560.     that may be assigned a fixed value (Kx = n) and/or controlled in real time by an
  561.     external MIDI device.
  562. ### _stop [Grammar procedure]
  563. When encountered in "production", forces production to pause
  564. ### _printOn [Grammar procedure]
  565. When encountered in "production", starts the display of various stages of the work string
  566.     in the "Trace" window
  567. ### _printOff [Grammar procedure]
  568. Cancels the effect of "_printOn"
  569. ### _print [Grammar procedure]
  570. When encountered in "production", displays the work string in the "Trace" window
  571. ### _stepOn [Grammar procedure]
  572. When encountered in "production", starts the "step-by-step" mode
  573. ### _stepOff [Grammar procedure]
  574. Cancels the effect of "_stepOn".
  575. ### _traceOn [Grammar procedure]
  576. When encountered in "production", starts displaying various stages of the work string
  577. and traces of all applied rules
  578. ### _traceOff [Grammar procedure]
  579. Cancels the effect of "_traceOn".
  580. ### _destru [Grammar procedure]
  581. When encountered in "production", destroys the structure of the work string, notably
  582.     removing parentheses indicating repetitions
  583. ### OFF (quantization)
  584. Cancels the effect of ON (quantization).
  585. ### ON (quantization)
  586. When checked, BP2 will use the quantization setting (in milliseconds) to simplify
  587.     tables containing "sound-object" structures (the phase diagram, see manual).
  588. ・ The result is a saving of memory space and "computation" time making it possible to
  589.     compute very complex items.
  590. ### _script(scriptline) [Performance control]
  591. The script line will be executed at "performance time". Note that the line may be
  592.     a call to another script, etc...
  593. ### New Project
  594. "New project" erases the current project (grammar and "terminal alphabet").
  595. ・ This is also a script command.
  596. ### Load
  597. Loads a file.
  598. ### Load Project ヌfilenameネ
  599. Erases the current project and loads a new one (grammar and "terminal alphabet") along
  600.     with attached settings (-se.file), interactive codes (-in.file) and glossary (-gl.file).
  601. ・ You will be prompted to select a grammar file.
  602. ・ BP2 will read the name of the corresponding ヤ-hoユ "Terminal alphabet" file in the grammar
  603.     file and, if found, will load the alphabet file automatically.
  604. ・ This is also a script command.
  605. ### Check script syntax
  606. Checks the syntax of the script displayed in the "Script" window, and of other scripts
  607.     called at the time the current script is executed.
  608. ・ Even if the syntax is correct, it may be necessary to update directory information in
  609.     case a file used by the script has been moved.  This will be done automatically when
  610.     invoking this command.
  611. ・ Tip: if you want to save time on checking scripts, you should put aliases of all
  612.     files used by a script into the same folder.
  613. ### Alphabet (cmd-H)
  614. "Alphabet" brings to front the "Terminal alphabet" window, which may contain a ヤ-hoユ file.
  615. ・ This is also a script command.
  616. ### Glossary
  617. "Glossary" brings to front the ヤglossaryユ window, which may contain a ヤ-glユ file.
  618. ・ This is also a script command.
  619. ### Clear
  620. Clears current selection. This is also a script command.
  621. ### Cut
  622. Cuts  current selection. This is also a script command.
  623. ### Copy
  624. Copies current selection. This is also a script command.
  625. ### Paste
  626. Pastes the content of scrap in replacement of current selection.
  627. ・ This is also a script command.
  628. ### Findノ replace
  629. Finds and replaces strings. It accepts special characters:
  630.   ^t  for tabulation
  631.   ^r or ^p for paragraph
  632.   ^n for new line
  633. ### Compile
  634. Compiles current alphabet, grammar, interactive codes and glossary (if any).
  635. ・ This is also a script command.
  636. ### Control panel
  637. Brings to front the control panel. This is also a script command.
  638. ### Data (cmd-D)
  639. "Data" brings to front the "Data" window, which may contain a ヤ-daユ file.
  640. ・ This is also a script command.
  641. ### Grammar (cmd-G)
  642. "Grammar" brings to front the "Grammar" window, which may contain a ヤ-grユ file.
  643. ・ This is also a script command.
  644. ### Graphics
  645. Brings to front the "Graphics" window. This is also a script command.
  646. ### Interaction
  647. "Interaction" brings to front the "Interaction" window, which may contain a ヤ-inユ file.
  648. ・ See "Interactive mode".
  649. ・ This is also a script command.
  650. ### Scrap
  651. "Scrap" brings to front the "Scrap" window, which may contain whatever you want.
  652.     Scrap is saved as pure text.
  653. ・ This is also a script command.
  654. ### Info
  655. "Info" brings to front the "Info" window. It should not be used to type any
  656.     data because it may be erased without warning.
  657. ・ This is also a script command.
  658. ### Keyboard
  659. "Keyboard" brings to front the "Keyboard" window, which may contain tokens loaded from
  660.     a ヤ-kbユ file. (See "Use tokens")
  661. ・ This is also a script command.
  662. ### Settings
  663. Brings to front the two "Settings" windows.
  664. ・ This is also a script command.
  665. ### Objects (cmd-E)
  666. "Objects" gives access to the "sound-object" editor.
  667. ・ This is also a script command.
  668. ### Produce items (cmd-R)
  669. This ヤrunsユ the current project: alphabet and grammar are compiled, then items are
  670.     produced, displayed, played on the MIDI output, etc., depending on the settings.
  671.     (See "Settings")
  672. ・ Beware of the settings because they may force "production" to
  673.     continue forever ("Improvize") or the item to be played repeatedly ("Cyclic play").
  674. ・ This is also a script command.
  675. ### Produce and play ヌintネ items [script command]
  676. Uses the current grammar to produce the specified number of items. It sets "Cyclic play"
  677.     to "false".
  678. ### Play ヌany itemネ [Script command]
  679. Play specified item.  An item is an expression containing "terminal symbols",
  680.     "simple notes" and "performance controls".
  681. ### Play-show ヌintネ times selection in window ヌwindownameネ [script command]
  682. Plays the selection several times.
  683. ### Set output window ヌwindownameネ [script command]
  684. Displays grammar productions in specified window. Default is "Data".
  685. ### Produce templates
  686. If the grammar is a ヤtrue BPユ grammar (see manual) then "Produce templates" creates
  687.     all templates generated/recognized by the current grammar, and displays them at
  688.     the end of the grammar.  (See "-gr.dhin--" for example.)
  689. ・ This is also a script command.
  690. ### Quit
  691. To quit BP2.
  692. ・ This is also a script command.
  693. ### Randomize
  694. This creates a new random seed (based on the internal clock).
  695. ・ This is also a script command.
  696. ### Script
  697. This brings to front the "Script" window.
  698. ・ This is also a script command.
  699. ### Start string
  700. This brings to front the "Start string" window.
  701. ・ This is also a script command.
  702. ### Trace
  703. This brings to front the "Trace" window.
  704. ・ This is also a script command.
  705. ### Activate window ヌwindownameネ [Script command]
  706. Brings to front specified window and makes it active.
  707. ### Hide window ヌwindownameネ [Script command]
  708. Hides specified window (and erases its content if it is ヤHelpユ, ヤGraphicsユ or ヤTraceユ).
  709. ### Analyze selection in window ヌwindownameネ
  710. Analyses the selected item using the current grammar.
  711. ・ This is possible only if it is a ヤtrue BPユ grammar (see manual), which BP2
  712.     will recognize.
  713. ・ If the result is ヤSユ then the item belongs to the language produced by the grammar.
  714. ・ This is also a script command.
  715. ### Buffer size ヌlongネ symbols [Script command]
  716. Sets the limit of the work string, may be increased once this limit has been reached.
  717. ・ This is a good way of controlling the length of items produced by a grammar
  718.     describing an infinite language.
  719. ### Clear window ヌwindownameネ [Script command]
  720. Clears specified window
  721. ### Define ヌvariableネ ヌsound itemネ [Script command in glossary]
  722. This a ヤglossaryユ instruction allowing a variable (any string starting with an uppercase
  723.     character) to be replaced with an expression that makes sense to the sound output. A
  724.     typical case is the assignment of MIDI program numbers (the ヤpatchesユ of a synthesizer)
  725.     to names denoting different ヤinstrumentsユ.
  726. ・ See for instance ヤ-gl.GeneralMIDIユ for standard names of instruments in
  727.     the "General MIDI" standard.
  728. ### MIDI [Formatノ]
  729. Items produced by grammar are played in "MIDI" format
  730. ### MIDI format
  731. Musical Instrument Digital Interface: a communication device between computers and
  732.     electronic musical instruments
  733. ### Csound format
  734. ・ Csound is a public-domain software for creating or transforming sound files on computers
  735.     equipped with a 16-bit sound output.  It is distributed with source code (in C) that
  736.     may be compiled on many different platforms (notably running Unix and MacOS).
  737. ・ Csound uses two text files as an input: an ヤorchestraユ file describing sound production
  738.     procedures (a set of virtual instruments), and a ヤscoreユ file describing sound events.
  739. ・ BP2 (above version 2.6.2) produces Csound score files using its own representation
  740.     of musical items, grammars and scripts, and a minimum amount of information about
  741.     the arguments expected by instruments in the Csound orchestra file.
  742. ・ Related topic: "Csound implementation"
  743. ### Csound OFF [script command]
  744. Cancels effect of Csound ON
  745. ### Csound ON [script command]
  746. Allows "production" and analysis of Csound files. [Not implemented]
  747. ### Default buffer size ヌlongネ symbols [Script command]
  748. Sets the value of Buffer size in the beginning of a "production".
  749. ### Delete ヌunsignedネ chars [Script command]
  750. Deletes specified number of chars in current edit window
  751. ### Don't use tokens for key strokes [Script command]
  752. Cancels the effect of "Use tokens"
  753. ### Expand selection window ヌwindownameネ
  754. Displays selected "polymetric structure" as interpreted by BP2.
  755. ・ Two equivalent interprations are displayed.  The first one is the most compact
  756.     representation (the one used internally by BP2).  The second one is the complete
  757.     expression, containing no explicit "tempo marker".  The first expression may
  758.     imply a rescaling.
  759. ・ For instance,
  760.                                    {a b,c d e}
  761.     is interpreted:
  762.         [Rescaled, "dilation ratio" = 2] /2 {a b, /3 c d e}
  763.                                          /3 {a_ _ b_ _,c_ d _ e_}
  764. ・ This is also a script command.
  765. ### Show periods
  766. Rewrites the selection taking into account the "section header".
  767. ### Section headers
  768. If a, b, c are sound objects, a sequence may be notated:
  769.     3+4+2/4 abbabccabcca /3 abcccbaab /1 bbb
  770. ・ Expression "3+4+2", called the "section header", means that sections of the meter
  771.     contain 3, 4 and 2 beats.
  772. ・ The musical example starts at speed 4, goes on at speed 3 and ends up at speed 1.
  773. ・ If "Show periods" is applied to this item, the new display will be:
  774.     abba.bcca.bcca.ツ
  775.     abc.ccb.aab.b.ツ
  776.     b.b
  777. ・ Thus, periods indicate beat delimitations and line breaks ヤツユ sections.
  778. ・ Note that there must be a period before a line break, otherwise the last beat would be
  779.     merged with the first one of the next line.
  780. ・ The old notation "3/4/2/4 abbabccabcca /3 abcccbaab /1 bbb" is no more valid.
  781. ### Prompt ON [Script command]
  782. Cancels the effect of "Prompt OFF".
  783. ### Prompt OFF [Script command]
  784. When encountered in a script, all "wait for..." instructions and
  785.     interactive commands are bypassed until the "Prompt ON" instruction resets interactivity
  786.     to normal. This is a useful debugging technique allowing a script to be executed
  787.     without interruption.
  788. ### Freeze windows OFF [Script command]
  789. Cancels the effect of Freeze windows ON.
  790. ### Freeze windows ON [Script command]
  791. See "Freeze windows".
  792. ### Freeze windows (toggle)
  793. "Freeze windows on" prevents BP2 from recording the new positions ans sizes of windows
  794.     along with the settings of the current project.  It also prevents windows to be moved
  795.     or resized when new settings are loaded.  This was only useful for saving time on old
  796.     Mac+ screens.
  797. ### Graphic scale ヌlongネ pixels = ヌlongネ milliseconds [Script command]
  798. Changes settings of the graphics window. (See "Graphic settings" dialog)
  799. ### Open file ヌfilenameネ [Script command]
  800. Opens a file. Different windows may force you to open certain types of files only.
  801. ### Load settings ヌfilenameネ [Script command]
  802. Loads settings for a specified work environment or project.
  803. ### Maximum production time ヌlongネ ticks [Script command]
  804. Sets the maximum time during which items will be produced. Time is measured in
  805.     ticks, i.e. 60ths of a second. Beware that the effect will depend on the speed of
  806.     the machine. In general it is better to specify the number of items to produce.
  807. ・ Related topic: "Produce ヌintネ items"
  808. ### MIDI file OFF [Script command]
  809. Cancels effect of "MIDI file ON".
  810. ### MIDI file ON [Script command]
  811. If this is checked you will be prompted to save items as MIDI files after
  812.     hearing them.
  813. ### Show time setting ON [Script command]
  814. Forces the display of calculations during time setting.
  815. ### Show time setting OFF [Script command]
  816. Cancels effect of "Show time setting ON".
  817. ### MIDI file (Formatノ)
  818. When checked, allows the "production" and edition of MIDI orchestra and score files.
  819. ### MIDI program ヌ0..127ネ [basic channel] [Script command]
  820. Sets MIDI program to number assigned.  Generally this is used for selecting different
  821.     ヤpatchesユ (instruments) on a synthesizer.  Numbering is 0 to 127, following MIDI
  822.     specification 1.0, but some constructors are numbering 1 to 128 instead -- notably in
  823.     the case of "General MIDI"...
  824. ### MIDI set-up time ヌintネ milliseconds [Script command]
  825. Changes MIDI set-up time in the "Time accuracy" dialog. It is the estimated delay of
  826.     MIDI messages sent by BP2 to various devices.
  827. ### MIDI controller #ヌ0..127ネ = ヌ0..127ネ channel ヌ1..16ネ [Script command]
  828. Sets specified controller to specified value.
  829. ### MIDI local control OFF channel ヌ1..16ネ [Script command]
  830. Sets local control to OFF on MIDI devices having specified channel as default channel.
  831. ### MIDI local control ON channel ヌ1..16ネ [Script command]
  832. Sets local control to ON on MIDI devices having specified channel as default channel.
  833. ### MIDI all notes OFF channel ヌ1..16ネ [Script command]
  834. Sends an AllNotesOff message on specified channel.
  835. ### MIDI Omni mode OFF channel ヌ1..16ネ [Script command]
  836. Sets Omni mode OFF on MIDI device(s) controlled by specified channel.
  837. ### MIDI Omni mode ON channel ヌ1..16ネ [Script command]
  838. Sets Omni mode ON on MIDI device(s) controlled by specified channel.
  839. ### MIDI Mono mode ON [ヌ0..16ネ voices] channel ヌ1..16ネ [Script command]
  840. Sets Mono mode ON on MIDI device(s) controlled by specified channel.
  841. ### MIDI Poly mode ON channel ヌ1..16ネ [Script command]
  842. Sets Poly mode ON on MIDI device(s) controlled by specified channel.
  843. ### MIDI decimal send ヌdecimal dataネ [Script command]
  844. Sends deciimal data to the MIDI output. Using this low-level command is
  845.     not recommended, except for system-exclusive messages.
  846. ### MIDI hexa send ヌhexadecimal dataネ [Script command]
  847. Sends hexadecimal data to the MIDI output. Using this low-level command is
  848.     not recommended, except for system-exclusive messages.
  849. ### MIDI switch ON ヌ64..95ネ channel ヌ1..16ネ [Script command]
  850. Switches ON specified switch on specified channel (e.g. the ヤholdユ pedal).
  851. ### MIDI switch OFF ヌ64..95ネ channel ヌ1..16ネ [Script command]
  852. Switches OFF specified switch on specified channel (e.g. the ヤholdユ pedal).
  853. ### MIDI set basic channel to ヌ1..16ネ [Script command]
  854. Specifies on which channel the following program change messages should be sent.
  855. ### Return [Script command]
  856. Returns to the script in which a subscript was called.
  857. ### Resume
  858. Allows current process to continue if it has been interrupted by "Pause".
  859. ・ This may also be done by receiving an "Apple Event" of class 'Bel0' and ID 'cont'.
  860. ### Stop
  861. Forces current process to abort.
  862. ・ This is also a script command.
  863. ### Pause
  864. Allows current process to pause until the ヤResume' command is activated by clicking the
  865.     "Resume" button or sending an "Apple Event" of class 'Bel0' and ID 'cont'.
  866. ・ This is also a script command.
  867. ### French convention
  868. Use French names of notes: dob, do, do#, reb, re, re#, mib, mi, mi#, fab, fa, fa#, solb,
  869.     sol, sol#, lab, la, la#, sib, si, si# and octave numbers such that la3 = 440 Hz.
  870. ・ The keyboard displayed by this command allows you to select alternate names, e.g. "reb"
  871.     instead of "do#". These choices are stored along with settings. BP2 does recognize
  872.     both names anyway, so the choice is only for screen display.
  873. ・ Also note that changing the "note convention" causes BP2 to recompile the script (if any)
  874.     displayed in the "Interaction" window (and saved as ヤ-in.filenameユ).
  875. ・ Related topic: "Tuning"
  876. ### English convention
  877. Use English names of notes: Cb, C, C#, Db, D, D#, Eb, E, E#, Fb, F, F#, Gb, G,
  878.     G#, Ab, A, A#, Bb, B, B# and octave numbers such that A4 = 440 HzgThe keyboard
  879.     displayed by this command allows you to select alternate names, e.g. "Db"
  880.     instead of "C#". These choices are stored along with settings. BP2 does recognize
  881.     both names anyway, so the choice is only for screen display.
  882. ・ Also note that changing the "note convention" causes BP2 to recompile the script (if any)
  883.     displayed in the "Interaction" window (and saved as ヤ-in.filenameユ).
  884. ・ Related topic: "Tuning"
  885. ### Indian convention
  886. Use Indian names of notes: sab, sa, sa#, reb, re, re#, gab, ga, ga#, mab, ma, ma#, pab,
  887. pa, pa#, dhab, dha, dha#, nib, ni, ni# and octave numbers such that dha4 = 440 Hz.
  888. ・ The keyboard displayed by this command allows you to select alternate names, e.g. "sa#"
  889.     instead of "rek". These choices are stored along with settings. BP2 does recognize
  890.     both names anyway, so the choice is only for screen display.
  891. ・ Also note that changing the "note convention" causes BP2 to recompile the script (if any)
  892.     displayed in the "Interaction" window (and saved as ヤ-in.filenameユ).
  893. ・ Related topic: "Tuning"
  894. ### Key numbers
  895. Use MIDI key numbers to represent notes, for example ヤkey#60ユ is middle C.
  896. ・ Changing the "note convention" causes BP2 to recompile the script (if any) displayed in
  897.     the "Interaction" window (and saved as ヤ-in.filenameユ).
  898. ・ Related topic: "Tuning"
  899. ### Note conventions
  900. Conventions used for writing "simple notes".
  901. ・ Related topics:
  902.     "Note convention = English"
  903.     "Note convention = French"
  904.     "Note convention = Indian"
  905.     "Note convention = key numbers"
  906.     "Tuning"
  907. ### Note convention = English [Script command]
  908. Use English names of notes: Cb, C, C#, Db, D, D#, Eb, E, E#, Fb, F, F#, Gb, G,
  909.     G#, Ab, A, A#, Bb, B, B# and octave numbers such that A4 = 440 Hz.
  910. ・ Related topic: "Tuning"
  911. ### Note convention = French [Script command]
  912. Use French names of notes: dob, do, do#, reb, re, re#, mib, mi, mi#, fab, fa , fa#, solb,
  913.     sol, sol#, lab, la, la#, sib, si, si# and octave numbers such that la3 = 440 Hz.
  914. ・ Related topic: "Tuning"
  915. ### Note convention = Indian [Script command]
  916. Use Indian names of notes: sab, sa, sa#, reb, re, re#, gab, ga, ga#, mab, ma, ma#, pab,
  917.     pa, pa#, dhab, dha, dha#, nib, ni, ni# and octave numbers such that dha4 = 440 Hz.
  918. ・ Related topic: "Tuning"
  919. ### Note convention = key numbers [Script command]
  920. Use MIDI key numbers, for example ヤkey#60ユ is middle C.
  921. ・ Related topic: "Tuning"
  922. ### Number streaks from 0 [Script command]
  923. Refers to the numbering of time streaks on graphics. (See "Graphic settings" dialog)
  924. ### Number streaks from 1 [Script command]
  925. Refers to the numbering of time streaks on graphics. (See "Graphic settings" dialog)
  926. ### Print window ヌwindownameネ [Script command]
  927. Prints current active window.
  928. ### Quantization ヌlongネ milliseconds [Script command]
  929. The minimum significant duration. It is convenient to set quantization to the largest
  930.     acceptable value in order to save "computation" time and space. Note that quantization
  931.     in BP2 has no effect on long-term accuracy.
  932. ### Quantize OFF [Script command]
  933. Cancels the effect of "Quantize ON".
  934. ### Quantize ON [Script command]
  935. See "Quantization".
  936. ### Reset random sequence  [Script command]
  937. Reseeds the random number generator with the value specified by "Set random seed"
  938. ### Reset keyboard [Script command]
  939. Resets keyboard tokens. (See "Use tokens")
  940. ### Run script ヌfilenameネ [Script command]
  941. Runs the specified script, if found on the disk in current directory.
  942. ### Select all in window ヌwindownameネ [Script command]
  943. Selects entire specified window.
  944. ### Set directory ヌlongネ [Script command]
  945. Sets current directory to specified value. Normally this value is not typed.
  946. ・ The instruction is created wherever necessary bu running "Check current script".
  947. ### Set random seed ヌunsignedネ [Script command]
  948. Sets the value of the random seed to specified value, and restarts the random
  949.     sequence. This makes it possible to reproduce a sequence of ヤrandomユ decisions. 
  950. ### Set selection start ヌlongネ [Script command]
  951. Sets the beginning of text selection to specified position.
  952. ### Set selection end ヌlongネ [Script command]
  953. Sets the end of text selection to specified position.
  954. ### Set Vref ヌintネ [Script command]
  955. Sets current volume to specified value. Normally this value is not typed.
  956. ・ The instruction is created wherever necessary bu running "Check current script".
  957. ### Smooth time [Script command]
  958. Sets time to smooth.  (See the "Metronom" dialog)
  959. ・ This means that time streaks will not be generated by the metronom, but by the
  960.    first sequence of objects. This is often associated with "time patterns".
  961. ・ Related topic: "Striated time"
  962. ### Striated time [Script command]
  963. Sets time to striated.  (See the "Metronom" dialog)
  964. ・ This means that the metronom will generate time streaks on which the pivots of
  965.     "sound-objects" may be placed.
  966. ・ Related topic: "Smooth time"
  967. ### Tempo ヌlongネ ticks in ヌlongネ secs [Script command]
  968. Sets the time base to specified values.  (See the "Time base" dialog.)
  969. ### Time base dialog
  970. A dialog containing specifications for the time base. On top, the current metronom
  971.     value (matching the one in the "Metronom" dialog) is expressed with a ratio of
  972.     ticks against seconds, e.g. 3 ticks in 2 seconds means 1.5 beats per second,
  973.     i.e. mm = 90.
  974. ・ Below are three cycles of tick patterns.  Enter a duration for
  975.     each cycle (between 1 and 40). Square check boxes indicating beats become hilited.
  976. ・ Check squares for hearing the ticks.
  977. ・ Clicking a square with the Option key down allows a more detailed specification.
  978. ### Reset cycle
  979. In the "Time base" dialog, resets all cycles to the first beat.
  980. ### Clear cycle
  981. In the "Time base" dialog, unchecks all ticked beats in a tick pattern.
  982. ### Time resolution ヌlongネ milliseconds [Script command]
  983. Sets time resolution to specified value.  (See the "Time accuracy" dialog.)
  984. ### Type ヌlineネ [Script command]
  985. When this script is executed, ヌlineネ is printed in the window previously selected by
  986.    script instruction "Activate window".
  987. ・ "Type <return>" inserts line feeds.
  988. ### Use buffer limit
  989. It forces BP2 to check the length of the work string (the item being produced) against
  990.     the limit value fixed in window "Buffer size".
  991. ### Use buffer limit OFF [Script command]
  992. Cancels the effect of "Use buffer limit ON".
  993. ### Use buffer limit ON [Script command]
  994. When checked, "production" will stop each time the "work string" reaches the size
  995.     specified in dialog "Buffer".  BP2 will prompt the user to allow expanding the
  996.     buffer, or terminate production.
  997. ### Wait ヌlongネ milliseconds [Script command]
  998. Instructs BP2 to wait for the specified number of milliseconds.
  999. ### Wait for ヌkey stroke or MIDI eventネ [Script command]
  1000. To define the wait event, the easiest is to check ヤRECユ in the script window,
  1001.     then click ヤWAIT FOR:ユ.
  1002. ・ Examples of correct syntax:
  1003.     Wait for g -- waiting for key ヤgユ to be depressed
  1004.     Wait for cmd-r -- waiting for command ヤrユ to be depressed
  1005.     Wait for Eb4 channel 1 -- waiting for a NoteOn on the MIDI input, key E flat,
  1006.         octave 4, channel 1
  1007.     Wait for mib3 channel 16 -- identical to the third one, in French convention
  1008.     Wait for space -- waiting for the space bar to be depressed
  1009. ### Reset interaction [Script command]
  1010. Resets the interactive environment, i.e. all features
  1011.     that allow the real-time control of BP2 by an external MIDI device.
  1012. ・ This environment is saved in a ヤ-in.filenameユ file.
  1013. ・ Resetting the interactive environment can also be achieved by clearing the window
  1014.     "Interaction".
  1015. ### IN Derive further ヌnoteネ channel ヌ1..16ネ [toggle]
  1016. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1017. ・ When flag "Derive further" is ON (see also "Settings" window), instead of initializing
  1018.     the work string to the start string (generally ヤSユ), BP2 will try to produce a derivation
  1019.     of the last item it generated.
  1020. ### IN On ヌnoteネ channel ヌ1..16ネ do ヌscript instructionネ
  1021. Specified NoteOn received by BP2 provokes the execution of script instruction.
  1022. ### IN Reset weights ヌnoteネ channel ヌ1..16ネ [toggle]
  1023. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1024. ・ Specified NoteOn allows rule weights in the grammar to be reset once an item has been
  1025.     produced.
  1026. ### IN Start play ヌnoteネ channel ヌ1..16ネ
  1027. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1028. ・ Sets the NoteOn message allowing the synchronization of the item to be played.
  1029. ・ See "Synchronize start".
  1030. ### IN Repeat ヤvユ times ヌnoteネ channel ヌ1..16ネ [v = velocity]
  1031. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1032. ・ Specified NoteOn forces ヤvユ times repetition of the item currently played.
  1033. ・ To stop repeating, you may also use "IN End repeat" or "IN Quit".
  1034. ### IN End repeat ヌnoteネ channel ヌ1..16ネ
  1035. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1036. ・ When the note is received, it cancels the effect of "IN Repeat forever".
  1037. ### IN Repeat forever ヌnoteネ channel ヌ1..16ネ
  1038. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1039. ・ If the note is received then the current item will be played forver.
  1040.     (The effect is the same as "Cyclic play" in the "Settings" window.)
  1041. ・ To stop repeating, use "IN End repeat" or "IN Quit".
  1042. ### IN Quit ヌnoteネ channel ヌ1..16ネ
  1043. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1044. ・ Aborts improvisation or "computation".
  1045. ### IN Use each substitution ヌnoteネ channel ヌ1..16ネ [toggle]
  1046. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1047. ・ When the note is received, it changes the status of the "Use each substitution" flag.
  1048.     (See the "Settings" window.)  This relates to "SUB" subgrammars: if the flag is on,
  1049.     then each substitution is played on the sound output.
  1050. ### IN Control tempo controller #ヌ0..127ネ channel ヌ1..16ネ range ヌfloatネ
  1051. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1052. ・ Sets specified MIDI controller to modify tempo in specified range. When the controller's
  1053.     position is medium (64) tempo is the one set by the metronom value. When it is
  1054.     maximum (127) tempo is multiplied by range. When it is minimum (0) tempo is
  1055.     divided by range.
  1056. ### Synchronize start ON-OFF ヌnoteネ channel ヌ1..16ネ [toggle]
  1057. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1058. ・ Changes the status of "Synchronize start". (See "Settings" dialog)
  1059. ### IN Set computation time to ヤvユ ヌnoteネ channel ヌ1..16ネ [v = velocity]
  1060. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1061. ・ When the mentioned note is received it will set a new "computation" time limit for the
  1062.     item being computed.
  1063. ### IN Smooth-striated time ヌnoteネ channel ヌ1..16ネ [toggle]
  1064. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1065. ・ Specified NoteOn changes time from smooth to striated and conversely.
  1066.     (See "Striated time").
  1067. ### IN Use-ignore object constraints ヌnoteネ channel ヌ1..16ネ [toggle]
  1068. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1069. ・ Specified NoteOn changes the status of "Ignore constraints". (See "Settings" dialog)
  1070. ### IN Skip next item ヌnoteネ channel ヌ1..16ネ
  1071. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1072. ・ Specified NoteOn instructs BP2 to skip the item being computed. This is required, for
  1073.    instance, if important parameters like tempo have been modified.
  1074. ### IN Play again item ヌnoteネ channel ヌ1..16ネ
  1075. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1076. ・ Specified NoteOn instructs BP2 to play once again the item being played.
  1077. ### IN Synchro tag ヌWxネ = ヌnoteネ channel ヌ1..16ネ
  1078. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1079. ・ Sets specified tag to respond to specified NoteOn. When this tag is encountered in an
  1080.     item, BP2 will wait for the NoteOn.  (A message will be displayed.) 
  1081. ### IN Param ヌKxネ = controller #ヌ0..127ネ channel ヌ1..16ネ
  1082. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1083. ・ Sets specified MIDI controller to control the value of parameter Kx.
  1084. ### IN Parameter ヌKxネ = velocity ヌnoteネ channel ヌ1..16ネ
  1085. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1086. ・ Sets specified key to control the value of parameter Kx.  Value is changed on NoteOn
  1087.     and set to the velocity.
  1088. ### IN Min ヌlongネ tick in ヌlongネ s ヌnoteネ max ヌlongネ tick in ヌlongネ s ヌnoteネ channel ヌ1..16ネ
  1089. This is a script command modifying the interactive environment set by the ヤ-inユ file.
  1090. ・ The first ヌnoteネ will set the time base to its minimum value (in ticks per second).
  1091. ・ The second ヌnoteネ will set the time base to its maximum value.
  1092. ・ Both notes must be on the same channel.
  1093. ・ Intermediate notes will set the time base to an interpolated value.
  1094. ・ Time base setting is expressed by the number of ticks against the number of seconds,
  1095.     for example: 13287 ticks in 4563 seconds.  (Accuracy is absolute!)
  1096. ### Text Color ON [script command]
  1097. Forces color text display. Subsequent changes in settings will be ignored.
  1098. ### Text Color OFF [script command]
  1099. Forces black and white text display. Subsequent changes in settings will be ignored.
  1100. ### Graphic Color ON [script command]
  1101. Forces color graphic display. Subsequent changes in settings will be ignored.
  1102. ### Graphic Color OFF [script command]
  1103. Forces black and white graphic display. Subsequent changes in settings will be ignored.
  1104. ### BP2 script
  1105. This command does nothing. It may be inserted on top of a script to enable BP2 and other
  1106.     software to figure out that a file contains a BP2 script.
  1107. ・ It is compulsory on top of ヤ-inユ interactive files for BP2 to recognize ヤnewユ formats.
  1108. ### Random sequence
  1109. Displays this dialog.
  1110. ### Time accuracy
  1111. Displays this dialog.
  1112. ### Buffer size
  1113. Displays this dialog.
  1114. ### Graphic settings
  1115. Displays this dialog.
  1116. ### Modem output
  1117. Sets BP2 to send MIDI messages through the ヤModemユ serial port.
  1118. ### Printer output
  1119. Sets BP2 to send MIDI messages through the ヤPrinterユ serial port. Make sure that 
  1120. AppleTalk is not active.
  1121. ### Reset windows
  1122. Resets window sizes and locations to default.
  1123. ### Split terminal symbols
  1124. When checked, inserts spaces between terminal symbols in items produced by the grammar.
  1125. ### Split |variables|
  1126. When checked, marks variables with vertical lines in items produced by the grammar.
  1127. ・ This is only useful with black and white display.
  1128. ### Type text
  1129. When checked, cancels the effect of "Use tokens".
  1130. ### Receive MIDI data to file
  1131. This command allows you to store in-coming MIDI data to a text file. It may be used,
  1132.     for instance, to save the set-up of any MIDI device using its bulk transfer facility.
  1133. ・ Time information is not saved, i.e. this is convenient for system exclusive messages.
  1134. ・ Note: on a slow machine like Mac II-ci you won't be able to receive a bulk transfer
  1135.     properly. Some data gets lost. If you have such problems, use the ヤD-50ユ bulk tranfer
  1136.     facility in HyperMIDI. It works with any type of transfer and will be successful
  1137.     provided that the in/out buffer of SoundObjectEditor is set to a sufficient value
  1138.     (approximately 120 000 bytes for a D-50 bulk transfer producing exactly 36 048 MIDI
  1139.     events).
  1140. ### Send MIDI data from file
  1141. This command allows you to send data to a MIDI device from a text file. It may be used,
  1142.     for instance, to initialize a MIDI device using its bulk transfer facility.
  1143. ・ Data is sent at the maximum rate allowed by the MIDI interface.
  1144. ### Type from MIDI [toggle]/J
  1145. When "Type from MIDI" is active (special cursor), any key you hit on the MIDI keyboard
  1146.     types the corresponding note in the currently active window. Names of notes depend on
  1147.     the convention you select: English, French, Indian, key numbers.
  1148. ・ Pushing the "Hold" pedal displays a prolongation symbol ヤ_ユ.
  1149. ・ In the same mode, program changes are recorded as script commands, and it is possible
  1150.     to enter automatically the arguments of the following "performance controls":
  1151. _chan(),_vel(),_volume(),_pan(),_mod(),_press(),_pitchbend(),_pancontrol(),_volumecontrol().
  1152. ・ Click on the control's name, move the corresponding MIDI control an hit any key on the
  1153.     computer to freeze the correct value.
  1154. ・ This parameter capture looks at preceding _pitchrange(), _pancontrol() and
  1155.     _volumecontrol() in order to check the proper controller and assess its range.
  1156. ### Load time pattern
  1157. When either grammar or data window is active, this allows you to create "time patterns".
  1158. ・ Play notes in sequence on the MIDI keyboard at the correct tempo.
  1159. ・ For a sequence of ヤnユ notes, BP2 will create ヤn-1ユ time objects: t1,t2, etc., which will
  1160.     be assigned duration ratios.
  1161. ### Time patterns
  1162. Sequences of time intervals characterized by precise ratios, to be used in "smooth time".
  1163. ・ These are processed like (codeless) "sound-objects". They are usually put together in
  1164.     the first field of a "polymetric expression".
  1165. ・ Use "Load time pattern" to create these patterns, or type them in the grammar or alphabet.
  1166. ・ Example:
  1167.     TIMEPATTERNS:
  1168.     t1= 1/1  t2 = 3/2   t3 = 4/3 
  1169.     t4  = 1/2
  1170.     -----------------------
  1171. ・ Time patterns always start with ヤtユ followed with digits.  Expressions may contain an
  1172.     integer or an integer ratio.  An example of polymetric expression using these time
  1173.     patterns is: {t1 t3 t4, do5 re5 mi5 fa5 - la5}  (See project ヤ-gr.tryTimePatternsユ)
  1174. ### _chan(x) [Performance control]
  1175. Sets current channel to x.
  1176. ### _vel(x) [Performance control]
  1177. Sets velocity of following "sound-object" to x.
  1178. ### _velcont [Performance control]
  1179. Indicates that velocity should change continuously. [Equivalent to "_velstep" in
  1180.     current version]
  1181. ### _velstep [Performance control]
  1182. Indicates that velocity should change stepwise between two specified values.
  1183. ### _script(x) [Performance control]
  1184. Indicates that script line ヤxユ should be executed just before the next "sound-object"
  1185.     or "simple note" is played.
  1186. ### _mod(x) [Performance control]
  1187. Indicates that modulation should be set to x.
  1188. ### _modstep [Performance control]
  1189. Indicates that modulation should change stepwise between two specified values.
  1190. ### _modcont [Performance control]
  1191. Indicates that modulation should change continuously.
  1192. ・ See "Continuous performance control"
  1193. ### _pitchbend(x) [Performance control]
  1194. Controls pitchbend in two possible ways. If _pitchrange(r) is not specified or is null
  1195.     for the current MIDI channel, then x is the actual MIDI value (range 0..16383).
  1196. ・ If _pitchrange(r) is specified, then x is the correction in cents.
  1197.     (Also see "_pitchrange")
  1198. ### _fixed [Performance control]
  1199. _fixed(param) indicates that "Performance parameter" ヤparamユ does not vary.
  1200. ・ This is the default setting for any performance parameter.
  1201. ・ Related topics: "_step", "_cont", "_value", "Performance parameter".
  1202. ### _step [Performance control]
  1203. _step(param) indicates that "Performance parameter" ヤparamユ varies stepwise.
  1204. ・ Related topics: "_fixed", "_cont", "_value", "Performance parameter".
  1205. ### _cont [Performance control]
  1206. _cont(param) indicates that "Performance parameter" ヤparamユ varies continuously.
  1207. ・ The default setting for any performance parameter is stepwise.
  1208. ・ Related topics: "_fixed", "_step", "_value", "Performance parameter".
  1209. ### _value [Performance control]
  1210. _value(param,x) assigns numeric value ヤxユ to "Performance parameter" ヤparamユ.
  1211. ・ The value may be an integer or floating-point relative number.
  1212. ・ In the present version only 256 ヤ_value(ノ,x)ユ statements can be handled with
  1213.     different ヤxユ values.
  1214. ・ Related topics: "_fixed", "_step", "_cont", "Performance parameter".
  1215. ### Performance parameter
  1216. Up to 256 parameters with arbitrary names may be handled by BP2 apart from the
  1217.     predefined ones: pitchbend, pressure, modulation, etc. which generate
  1218.     MIDI messages and Csound events.
  1219. ・ An arbitrary parameter is automatically created when refered to in a "_value", "_fixed",
  1220.     "_cont" or "_step" statement.
  1221. ・ These parameters have no effect on the MIDI output.  A parameter is used by a Csound
  1222.     instrument if its name is found as a "Parameter name" in the Csound instrument
  1223.     description.
  1224.     (See "Csound instruments" in the "Ouput" menu and click the "MOREノ" button)
  1225. ・ If a sequence of sound-objects or simple notes is preceded with ヤ_cont(param)ユ,
  1226.     the parameter ヤparamユ will be interpolated as explained in
  1227.     "Continuous performance control".  In this case, it advisable to use two
  1228.     indexes for passing the start and end values over to the instrument.
  1229.     (See "Start index" and "End index")
  1230. ・ A typical expression containing a variable parameter named ヤblurbユ:
  1231.     _cont(blurb) _value(blurb, 154.2) A4 B4 C4 _value(blurb, -21) D4
  1232. ・ Related topics: "_fixed", "_step", "_cont", "_value", "Parameter name".
  1233. ### _pitchstep [Performance control]
  1234. Indicates that pich should change stepwise between two specified values.
  1235. ### _pitchcont [Performance control]
  1236. Indicates that pich should change continuously between two specified values.
  1237. ・ See "Continuous performance control"
  1238. ### _press(x) [Performance control]
  1239. Controls channel pressure on current channel. Range of x is 0..127 and may be set by a
  1240.     controller: _press(60), _press(K1=25), _press(K8), etc.
  1241. ### _presstep [Performance control]
  1242. Indicates that channel pressure should change stepwise between two specified values.
  1243. ### _presscont [Performance control]
  1244. Indicates that channel pressure should change continuously between two specified values.
  1245. ・ See "Continuous performance control"
  1246. ### _switchon(i,c) [Performance control]
  1247. Sets controller i to 127 on channel c. For instance, if controller 64 is the hold
  1248.     pedal, this command will have the same effect as pushing the pedal. 
  1249. ### _switchoff(i,c) [Performance control]
  1250. Sets controller i to 0 on channel c. For instance, if controller 64 is the hold pedal,
  1251.     this command will have the same effect as releasing the pedal.
  1252. ### _volumestep [Performance control]
  1253. Indicates that volume should change stepwise between two specified values.
  1254. ### _volumecont [Performance control]
  1255. Indicates that volume should change continuously between two specified values.
  1256. ・ See "Continuous performance control"
  1257. ### _panstep [Performance control]
  1258. Indicates that panormic should change stepwise between two specified values.
  1259. ### _pancont [Performance control]
  1260. Indicates that panormic should change continuously between two specified values.
  1261. ・ See "Continuous performance control"
  1262. ### _legato(x) [Performance control]
  1263. Indicates that durations will be increased by x% to produce legato effect.
  1264. ### _staccato(x) [Performance control]
  1265. Indicates that durations will be decreased by x% to produce staccato effect.
  1266. ### _articulstep [Performance control]
  1267. Indicates that articulation (legato-staccato) should change stepwise between two
  1268. specified values.
  1269. ### _articulcont [Performance control]
  1270. Indicates that articulation (legato-staccato) should change continuously between two
  1271. specified values.
  1272. ### _velfixed [Performance control]
  1273. Cancels the effect of _velcont or _velstep.
  1274. ### _modfixed [Performance control]
  1275. Cancels the effect of _modcont or _modstep.
  1276. ### _pitchfixed [Performance control]
  1277. Cancels the effect of _pitchcont or _pitchstep.
  1278. ### _pressfixed [Performance control]
  1279. Cancels the effect of _presscont or _presstep.
  1280. ### _volumefixed [Performance control]
  1281. Cancels the effect of _volumecont or _volumestep.
  1282. ### _articulfixed [Performance control]
  1283. Cancels the effect of _articulcont or _articulstep.
  1284. ### _panfixed [Performance control]
  1285. Cancels the effect of _pancont or _panstep.
  1286. ### _pitchrange(x) [Current channel] [Performance control]
  1287. Sets the range of pitchbend control to ア x cents on the current channel. This value
  1288.     should reflect the range on the current ヤpatchユ of the MIDI expander.
  1289. ・ For instance, _pitchrange(300) means that pitch modifications will be in the range of
  1290.     three semitones above and below the average value.
  1291. ・ Once _pitchrange(x) has been specified on a MIDI channel, subsequent _pitchbend(y)
  1292.     messages indicate pitch corrections in cents, with y varying between -x and +x.
  1293.     "_pitchrange(0)" [default value] indicates that subsequent _pitchbend(y) messages
  1294.     on the current MIDI channels take the actual MIDI value for y (range 0..16383).
  1295. ### _transpose(x) [Performance control]
  1296. Transposes following simple note x semitones higher. (x may also be negative.)
  1297. ・ Transposition is clipped to acceptable octave values.
  1298. ### _pitchrate(x) [Current channel]  [Performance control]
  1299. Sets the rate of continuous change of pitchbend to x samples per second.
  1300. ### _modrate(x) [Current channel]  [Performance control]
  1301. Sets the rate of continuous change of modulation to x samples per second.
  1302. ### _pressrate(x) [Current channel]  [Performance control]
  1303. Sets the rate of continuous change of channel pressure to x samples per second.
  1304. ### _volumerate(x) [Current channel]  [Performance control]
  1305. Sets the rate of continuous change of volume to x samples per second.
  1306. ### _panrate(x) [Current channel]  [Performance control]
  1307. Sets the rate of continuous change of panoramic controller to x samples per second.
  1308. ### _volumecontrol(x) [Current channel]  [Performance control]
  1309. Informs BP2 that MIDI controller x controls the volume (on the current channel).
  1310. ・ Default value is 7, in agreement with "General MIDI" specs.
  1311. ### _pancontrol(x) [Current channel]  [Performance control]
  1312. informs BP2 that MIDI controller x controls the panoramic (on the current channel).
  1313. ・ Default value is 10, in agreement with "General MIDI" specs.
  1314. ### _volume(x) [Performance control]
  1315. Controls volume on the current channel (range 0 to 127). The default controller is MIDI
  1316.     controller #7 and may be changed by _volumecontrol(). Default value is 90 (as per General
  1317.     MIDI specs).
  1318. ・ If button "Reset controllers" is checked on the "Settings" dialog, volumes on
  1319.     all channels are reset to default value once an item has been played.
  1320. ### _pan(x) [Performance control]
  1321. Controls panoramic on the current channel (range 0 to 127). The default controller is
  1322.     MIDI controller #10 and may be changed by _pancontrol(). Default value is 64.
  1323. ・ If button "Reset controllers" is checked on the "Settings" dialog, panoramics on
  1324.     all channels are reset to default value once an item has been played.
  1325. ### Wait for:
  1326. When in RECording script mode, this allows you to enter a script line
  1327.     "Wait for ヌkey stroke or MIDI eventネ" interactively.
  1328. ### Execute
  1329. Execute the script displayed in the script window, if any.
  1330. ### Check MIDI
  1331. Play a random sequence on the MIDI port to check the output.
  1332. ### RESET (Keyboard window)
  1333. Delete all tokens attached to keys. (See "Use tokens")
  1334. ### RESET MIDI
  1335. Reset the MIDI driver. Use this when MIDI input/output is not working. A good idea also
  1336. is to reset your MIDI device (synth, keyboard, etc.) by switching it off and on.
  1337. ### Expand selection window ヌwindownameネ
  1338. You selected text in the current edit window that will be interpreted by BP2 as a
  1339.     "polymetric expression". The complete (expanded) polymetric expression will be shown
  1340.     if the syntax is correct and if terminal symbols belong to the current alphabet.
  1341. ・ This is also a script command.
  1342. ### Tablesノ
  1343. Displays a window allowing the edition of tables used by Csound instruments.
  1344. ### Play selection in window ヌwindownameネ
  1345. If symbols and syntax are correct, the selection in the current edit window will be
  1346.     played on the MIDI output. You may check "Show graphics" on the "Settings" dialog to
  1347.     see how "sound-objects" are set in time.
  1348. ・ This is also a script command.
  1349. ### Ignore constraints
  1350. If checked, then all object properties will be ignored when setting time.
  1351. ### Ignore constraints OFF [Script command]
  1352. Cancels effect of "Ignore constraints ON".
  1353. ### Ignore constraints ON [Script command]
  1354. See "Ignore constraints".
  1355. ### Write MIDI files
  1356. (Not yet implemented) Allow BP2 to create MIDI file containing the items it produces.
  1357. ### Show messages
  1358. Allows BP2 to display messages during "computation".
  1359. ### Show messages OFF [Script command]
  1360. Cancels effect of "Show messages ON".
  1361. ### Show messages ON [Script command]
  1362. See "Show messages".
  1363. ### Interactive (use input)
  1364. When this is checked, BP2 tries to make sense of in-coming MIDI messages. It will display
  1365.     some of them (message line, bottom of the screen) and may take actions according to
  1366.     interactive commands defined in window "Interaction" (-in.filename).
  1367. ### Interactive OFF [Script command]
  1368. Cancels the effect of Interactive ON.
  1369. ### Interactive ON [Script command]
  1370. When this is checked, BP2 tries to make sense of in-coming MIDI messages. It will display
  1371.     some of them (message line, bottom of the screen) and may take actions according to
  1372.     interactive commands defined in window "Interaction" (-in.filename).
  1373. ### Reset controllers [Settings dialog]
  1374. Resets switches, pitch benders, modulation, channel pressure, panoramic and volume
  1375.     on all channels once an item has been played. This option is recommended although it may
  1376.     be time consuming.
  1377. ・ Note that BP2 keeps track of the channels on which controllers
  1378.     have been changed, so normal reset will only occur on those channels. (Consequently,
  1379.     if a controller has been changed by another device than BP2, it may not be reset
  1380.     properly.)  However, general reset is forced when invoking "Produce items" if this
  1381.     option is checked.
  1382. ### Reset controllers OFF [Script command]
  1383. Cancels "Reset controllers ON".
  1384. ### Reset controllers ON [Script command]
  1385. Resets pitch benders, modulation, channel pressure and volume on all channels
  1386. before an item is played. This option is recommended.
  1387. ### Reset rule weights
  1388. Resets weights in grammar to original values before producing a new item.
  1389. ### Reset rule weights OFF [Script command]
  1390. Cancels the effect of "Reset rule weights ON".
  1391. ### Reset rule weights ON [Script command]
  1392. See "Reset rule weights".
  1393. ### Reset rule flags
  1394. Resets "flags" in grammar to ヤzeroユ before producing a new item.
  1395. ### Reset rule flags OFF [Script command]
  1396. Cancels the effect of "Reset rule flags ON".
  1397. ### Reset rule flags ON [Script command]
  1398. See "Reset rule flags".
  1399. ### Use MIDI in/out
  1400. Allows BP2 to play items on the MIDI output.
  1401. ### Use MIDI OFF [Script command]
  1402. Cancels the effect of "Use MIDI ON".
  1403. ### Use MIDI ON [Script command]
  1404. See "Use MIDI in/out".
  1405. ### Synchronize start
  1406. If checked, BP2 will wait for a specific MIDI NoteOn before playing the current item.
  1407. ・ The synchronize message may be set in the interactive file "-mi.filename".
  1408. ・ See "IN Start play".
  1409. ### Synchronize start OFF [Script command]
  1410. Cancels the effect of "Synchronize start ON".
  1411. ### Synchronize start ON [Script command]
  1412. See "Synchronize start".
  1413. ### Compute while playing
  1414. Allows BP2 to compute the next item while playing current one. Usually this option
  1415.     is active. It may be de-activated to save memory space.
  1416. ### Non-stop improvize
  1417. Allows BP2 to produce unlimited number of items with the same grammar.
  1418. ### Non-stop improvize OFF [Script command]
  1419. Cancels the effect of "Non-stop improvize ON".
  1420. ### Non-stop improvize ON [Script command]
  1421. See "Non-stop improvize".
  1422. ### Cyclic play
  1423. Allows the same item to be repeated forever.
  1424. ### Cyclic play OFF [Script command]
  1425. Cancels the effect of "Cyclic play ON".
  1426. ### Cyclic play ON [Script command]
  1427. See "Cyclic play".
  1428. ### Use each substitution
  1429. When SUB subgrammars are used, allows BP2 to play items produced after each substitution.
  1430.     (See "-gr.koto3" for instance)
  1431. ### Use each substitution OFF [Script command]
  1432. Cancels the effect of "Use each substitution ON".
  1433. ### Use each substitution ON [Script command]
  1434. See "Use each substitution".
  1435. ### Produce all items
  1436. Produces all items generated by grammar.
  1437. ### Produce all items OFF [Script command]
  1438. Cancels the effect of "Produce all items ON".
  1439. ### Produce all items ON [Script command]
  1440. Produces all items generated by grammar.
  1441. ### Display production
  1442. Displays all steps of the "production" in the "Trace" window.
  1443. ### Step-by-step produce
  1444. Displays all steps of the "production" in the "Trace" window, and allows BP2 to pause.
  1445. ### Step subgrammars
  1446. Allows BP2 to pause each time a subgrammar has been used entirely in "production".
  1447. ### Trace production
  1448. Displays all steps of the "production" in the "Trace" window along with decisions
  1449.     taken while producing an item.
  1450. ### Choose candidate rule
  1451. Allows user to produce items by choosing candidate rules manually.
  1452. ### Display items
  1453. Allows the display of item(s) produced by the grammar. This option should be OFF if
  1454.     items are very complex.
  1455. ### Display items OFF [Script command]
  1456. Cancels the effect of "Display items ON".
  1457. ### Display items ON [Script command]
  1458. See "Display items".
  1459. ### Show graphics
  1460. Displays items on the graphics window before playing them on the MIDI output.
  1461. ・ This option should be OFF if items are very complex.
  1462. ### Show graphics OFF [Script command]
  1463. Cancels the effect of "Show graphics ON".
  1464. ### Show graphics ON [Script command]
  1465. See "Show graphics".
  1466. ### Use time limit
  1467. Uses specified time limit, if any, to perform "computations".
  1468. ### Use time limit OFF [Script command]
  1469. Cancels the effect of "Use time limit ON".
  1470. ### Use time limit ON [Script command]
  1471. See "Use time limit".
  1472. ### Use tokens ON [Script command]
  1473. See "Use tokens".
  1474. ### Use tokens OFF [Script command]
  1475. Cancels the effect of "Use tokens ON". (See "Use tokens")
  1476. ### Computations
  1477. Computation comprizes:
  1478. ・ the "production" of an item by a grammar, or the interpretation
  1479.     of text selection as a musical item;
  1480. ・ the expansion of the item as a "polymetric expression"
  1481. ・ the "time-setting" of the expanded expression.
  1482. ### Use tokens [toggle]
  1483. Instead of typing the characters indicated on the computer's keyboard, "Use tokens"
  1484.     allows you to type tokens defined in a ヤkeyboardユ file (-kb.filename).
  1485. ・ To edit, save and load tokens, display the "Keyboard" window.
  1486. ### Use these tokens (Keyboard window)
  1487. See "Use tokens".
  1488. ### OK
  1489. Means that changes done in the current window are valid.
  1490. ### New seed (Random sequence)
  1491. Creates an arbitray new seed that will be used for random generation. This is the
  1492.     ヤrandomizeユ procedure used by programmers. The new seed will be displayed and may
  1493.     be reused to produce exactly the same sequence (with exactly the same grammar)
  1494. ### Use buffer limit OFF
  1495. Ignore specified buffer limit: the work string may grow forever.
  1496. ### Use buffer limit ON
  1497. Use the specified value to limitate the length of the work string during "production".
  1498. ### Rule arrows
  1499. <-> --> and <-- are the three derive modes in grammars.
  1500. --> means that the rule may be used in "production" only
  1501. <-- means that it is to be used in analysis (parsing) only
  1502. <-> means that the rule may be used in both modes.
  1503.     (This is the usual format for "true BP grammars")
  1504. ### true BP grammars
  1505. These grammars can be used both in "production" and in analysis (parsing).
  1506.     See the reference manual. When compiling a grammar, BP2 checks whether it may be taken
  1507.     as a true BP grammar.
  1508. ### GEN type of a Csound parameter
  1509. Indicates the Csound generator used with function tables describing variations of this
  1510.     parameter.  GEN07 (linear interpolation) is assumed by default.  GEN08 (cubic spline)
  1511.     is another option.
  1512. ### General MIDI
  1513. An international standard aimed at making it easy to play MIDI files with predictable
  1514.     results on different synthesizers. Basic specifications are a mapping of
  1515.     128 typical instruments to 128 program numbers (numbered 1 to 128), and a mapping of
  1516.     key numbers to typical percussive sounds (to be played on channel 10).
  1517. ・ In BP2, General MIDI (and customized mappings) is defined as a glossary, namely
  1518.     "-gl.GeneralMIDI".  Information about General MIDI may be obtained from Tom White,
  1519.     RolandCorp, 7200 Dominion Circle, Los Angeles CA 90040, USA.  You may also contact
  1520.     jeff@millie.loc.gov.
  1521. ### Reset this object
  1522. Deletes the displayed "sound-object prototype" and resets its properties to default.
  1523. ・ To delete a sound-object prototype permanently, first reset it and save the ヤ-miユ
  1524.     file of "sound-object prototypes". Then delete it from the "alphabet window".
  1525. ### Play object alone
  1526. Play "sound-object prototype" at specified tempo.
  1527. ### Play expression:
  1528. Play item typed in the <any expression> field.
  1529. ### MIDI sequence
  1530. This "sound-object prototype" is a sequence of MIDI codes.
  1531. ### Sampled sound
  1532. This "sound-object prototype" is a sound file, or part thereof.
  1533. ### Csound instrument
  1534. This "sound-object prototype" is a Csound instrument.
  1535. ### Copy from ...
  1536. Copy part of properties from specified "sound-object prototype".
  1537. ### Go to ...
  1538. Jumps to specified "sound-object prototype".
  1539. ### Edit/record MIDI stream
  1540. Opens dialog for recording and editing MIDI codes for this sound-object prototype.
  1541. ### (striated time)
  1542. Decide to play expression in striated or smooth time. (See "Striated time")
  1543. ### Show graphics
  1544. Decide to play expression with or without graphics.
  1545. ### Ignore properties
  1546. If checked, "sound-object prototype" constraints will be ignored when playing expression.
  1547. ### with parameters:
  1548. If checked, following parameters will be used when playing object.
  1549. ### Load prototype file
  1550. Load a ヤ-miユ "sound-object prototype" file. Note that ヤoldユ files (before 2.5) will
  1551.     not be loaded unless the corresponding ヤ-hoユ alphabet has been loaded.
  1552. ### Save prototype file
  1553. Saves current "sound-object prototype" file.
  1554. ### RECORD
  1555. Records new MIDI codes for current "sound-object prototype".
  1556. ### PLAY
  1557. Plays current "sound-object prototype" exactly at the tempo it was recorded.
  1558. ### Play ticks
  1559. When checked, metronom ticks will be heard.
  1560. ### Time ticks OFF
  1561. This is a script command.
  1562. Switches off metronom ticks.
  1563. ### Time ticks ON
  1564. This is a script command.
  1565. Switches on metronom ticks.
  1566. ### Tick cycle ON
  1567. This is a script command.
  1568. ・ Allows the hearing of metronom ticks, if combined with "Play ticks ON", mixed with
  1569.     the performance of items.
  1570. ### Tick cycle OFF
  1571. This is a script command.
  1572. ・ Inhibits metronom ticks when items are performed.
  1573. ### Reset tick cycle
  1574. This is a script command.
  1575. ・ Resets the cycles of ticks played by the time base during the performance of items.
  1576. ### Reference period
  1577. See "Striated object".
  1578. ### Striated object:  Tref =...
  1579. This "sound-object prototype" is declared as ヤstriatedユ, i.e. based on a
  1580.     metronom setting the period of which is Tref, and may be rescaled accordingly when
  1581.     performed on a different tempo.  For instance, if Tref = 1000ms and metronom value
  1582.     is mm = 120, this object will be rescaled at 50% its nominal duration.
  1583. ### Record tick
  1584. Select the MIDI key and channel to play ticks.
  1585. ### Import...
  1586. Import MIDI codes for current "sound-object prototype" from a MIDI file.
  1587. ### Show codes
  1588. Display MIDI codes recorded for current "sound-object prototype".
  1589. ### Adjust duration to...
  1590. Adjust the duration of current "sound-object prototype" to the value specified
  1591. in milliseconds.
  1592. ・ Beware of the effects of "pre-roll" and "post-roll". Remember the formula:
  1593.     Sound-object duration
  1594.         = date of last event - date of first event - pre-roll + post-roll
  1595. ・ Both MIDI and Csound events are modified.
  1596. ・ Related topic: Adjust beats to...
  1597. ### Adjust beats to...
  1598. Adjust the duration of current "sound-object prototype" to the duration specified 
  1599.     in number of beats (using Tref as period).
  1600. ・ Beware of the effects of "pre-roll" and "post-roll". Remember the formula:
  1601.     Sound-object duration
  1602.         = date of last event - date of first event - pre-roll + post-roll
  1603. ・ Both MIDI and Csound events are modified.
  1604. ・ Related topic: Adjust duration to...
  1605. ### Adjust velocities...
  1606. Adjust velocities within specified range. Velocities 0 or velocities of NoteOff
  1607.     messages are unchanged.
  1608. ### Append AllNotesOff
  1609. Append AllNotesOff message after the end of current "sound-object prototype".
  1610. ・ This is done automatically by many MIDI keyboards.
  1611. ### Suppress AllNotesOff
  1612. Suppress all AllNotesOff messages from the insertion point or the beginning.
  1613. ### Quantize NoteOn's...
  1614. Adjust dates of NoteOn messages to match specified fraction of a beat. This does not
  1615.     modify NoteOff's. (Use "Expand min. durations" for that)
  1616. ### Expand min. durations...
  1617. Set minimum note durations to specified fraction of beat
  1618. ### Suppress channel pressure
  1619. Suppress all channel pressure (monophonic aftertouch) messages from the insertion point
  1620.     or the beginning.
  1621. ### Make monodic
  1622. If two notes are overlapping, shorten the first one, and so on until object may be
  1623.     performed on a single-voice patch.
  1624. ### Suppress pitchbend
  1625. Suppress all pitchbend messages from the insertion point or the beginning.
  1626. ### Suppress key pressure
  1627. Suppress all key pressure (polyphonic aftertouch) messages from the insertion
  1628.     point or the beginning.
  1629. ### Insert silence
  1630. Create silence of specified duration and insert it at the beginning of the sound-object
  1631.     prototype or at the insertion point.
  1632. ・ May be you actually want to set-up a positive "pre-roll"?
  1633. ・ Related topic: "Append silence"
  1634. ### Append silence
  1635. Create silence of specified duration and append it to the "sound-object prototype".
  1636. ・ May be you actually want to set-up a negative "post-roll"?
  1637. ・ Related topic: "Insert silence"
  1638. ### OK Rescale
  1639. This object may be compressed or dilated at will.
  1640. ・ Related topics: "OK Rescale", "Expand at will", "Compress at will", "Dilation ratio range"
  1641. ### Never rescale
  1642. This object should never be compressed nor dilated.
  1643. ・ Related topics: "Never rescale", "Expand at will", "Compress at will", "Dilation ratio range"
  1644. ### Dilation ratio
  1645. The ratio by which the duration of a "sound-object prototype" is multiplied at the
  1646.     moment it is played.
  1647. ・ Related topics: "OK Rescale", "Never rescale", "Dilation ratio range", "Expand at will",
  1648.      "Compress at will", "Send dilation ratio to controller"
  1649. ### Dilation ratio range:
  1650. Specify range of "dilation ratio" in which object may be rescaled.
  1651. ・ Related topics: "OK Rescale", "Never rescale", "Expand at will", "Compress at will" 
  1652. ### Expand at will
  1653. This object may be dilated at will, i.e. its "dilation ratio" may become infinite.
  1654. ・ Related topics: "OK Rescale", "Never rescale", "Dilation ratio range", "Compress at will" 
  1655. ### Compress at will
  1656. This object may be compressed at will, i.e. its "dilation ratio" may go down to 0.
  1657. ・ Related topics: "OK Rescale", "Never rescale", "Dilation ratio range", "Expand at will" 
  1658. ### Send dilation ratio to controller:
  1659. Create a MIDI message containing "dilation ratio" and send it to the specified
  1660.     controller before the first message of the object is sent. Some MIDI devices may
  1661.     use this information to modify the sound generation process accordingly.
  1662. ・ If ヤalphaユ is the dilation ratio (alpha = 1 means no change in the timing), then
  1663.     the value sent in this MIDI message is: 32 * log(alpha) + 64
  1664.     where ヤlogユ is a decimal logarithm.
  1665. ・ This controller value is clipped to the range 0..127.
  1666. ### Beginning
  1667. Pivot should be at the beginning of the "sound-object"'s time-span interval.
  1668. ### Middle
  1669. Pivot should be at the end of the "sound-object"'s time-span interval.
  1670. ### Set pivot
  1671. Pivot should be at specified distance from the beginning of the "sound-object"'s
  1672.     time-span interval.
  1673. ### First NoteOn
  1674. Pivot should be on first NoteOn message.
  1675. ### Middle NoteOn/Off
  1676. Pivot should be in the middle of time-span interval delimited by first NoteOn and
  1677.     last NoteOff messages.
  1678. ### Last NoteOff
  1679. Pivot should be on last NoteOff message.
  1680. ### Never relocate
  1681. Never relocate this "sound-object".
  1682. ・ Related topic: "Relocate at will"
  1683. ### Relocate at will
  1684. Relocate this "sound-object" at will.
  1685. ・ Related topic: "Never relocate"
  1686. ### Allow delay
  1687. Relocate this "sound-object" with delay less than specified value (in ms or fraction
  1688.     of duration).
  1689. ### Allow forward
  1690. Relocate this "sound-object" with forward displacement less than specified value
  1691.     (in milliseconds or fraction of duration).
  1692. ### Never cover
  1693. Never cover beginning (resp. end) of "sound-object".
  1694. ・ Related topic: "Cover at will"
  1695. ### Cover at will
  1696. Beginning (resp. end) of "sound-object" may be covered by other objects.
  1697. ・ Related topic: "Never cover"
  1698. ### Not more than
  1699. Beginning (resp. end) of object may be covered by other objects within specified
  1700.     limit (in milliseconds or fraction of duration).
  1701. ### Never truncate
  1702. Never truncate beginning (resp. end) of object.
  1703. ・ Related topic: "Truncate at will"
  1704. ### Truncate at will
  1705. Beginning (resp. end) of object may be truncated at will.
  1706. ・ Related topic: "Never truncate"
  1707. ### Never break after this object
  1708. If checked, does not allow ヤorganumユ on this object.
  1709. ・ Related topic: "Break at will"
  1710. ### Break at will
  1711. If checked, allows ヤorganumユ on this object.
  1712. ・ Related topic: "Never break after this object"
  1713. ### Don't force
  1714. Do not force continuity in the beginning (resp. the end) with a neighbouring object.
  1715. ・ Related topics: "Force", "Allow gap"
  1716. ### Force
  1717. Force continuity in the beginning (resp. the end) with a neighbouring object.
  1718. ・ Related topics: "Don't force", "Allow gap" 
  1719. ### Allow gap
  1720. Allow break of continuity in the beginning (resp. the end) with a neighbouring object
  1721.     up to specified value (in milliseconds or fraction of duration).
  1722. ・ Related topics: "Don't force", "Force"
  1723. ### Force to current channel
  1724. Force all channel messages of this object to the channel set by context [ _chan(x) ].
  1725. ### Do not change channels
  1726. Never change channels of this object even if context [ _chan(x) ] demands it.
  1727. ### Force to channel:
  1728. Force all channel messages of this object to specified channel.
  1729. ### Accept transposition
  1730. If unchecked, object will ignore all _transpose(x) controls.
  1731. ### Accept articulation changes
  1732. If unchecked, object will ignore all _legato(x) and _staccato(x) controls.
  1733. ### Accept volume changes
  1734. If unchecked, object will ignore all _volume(x) controls.
  1735. ### Accept panoramic changes
  1736. If unchecked, object will ignore all _pan(x) controls.
  1737. ### Enter and find
  1738. Enters text selection and looks for it in current window.
  1739. ### Tempo markers
  1740. These are numbers preceded with slashes explicitly indicating the ヤspeedユ of a sequence
  1741.     of sound-objects, i.e. the number of sound objects performed in one tick of
  1742.     the metronom.  In the beginning of a musical item, other numbers may indicate meter
  1743.     sections.  See "Section headers".
  1744. ### mm = <metronom value>
  1745. This indicates the number of ticks per minute in the "Time base".
  1746. ### Transpose input notes:
  1747. If checked, and if non zero value is specified, then all notes entered from the MIDI
  1748.     keyboard are transposed accordingly.  For instance, if the transposition value is
  1749.     -3 semitones, the C5 key will be transcribed as A4.
  1750. ### INIT: <initialisation line>
  1751. Use this line on top of a grammar to define a process that should be activated (ONCE)
  1752.     before improvizing.  A typical example is the setting of a ヤpatchユ on the synthesizer.
  1753. ・ The initialisation line itself is a single script instruction. There are two cases:
  1754. 1) A "Play ヌany itemネ" instruction is executed when the first item has been produced and is
  1755.     ready to be performed; thus there is no delay between initialisation and the
  1756.     beginning of the performance.
  1757. 2) Any other instruction is executed before producing the first item.  This allows a
  1758.     sufficient delay, for instance in the case of a patch change.
  1759. ### Performance controls
  1760. To display the list of currently implemented performance controls, select
  1761.     "Pick performance control" in the "Edit" menu.
  1762. ・ Each control is documented on-line.  These controls are used for
  1763.     adding expressiveness to the performance (e.g. _legato, _volume, etc.) or changing
  1764.     MIDI parameters (e.g. _pitchbend) that are not mapped to specific "sound-objects".
  1765. ・ Related topic: "Continuous performance control"
  1766. ### Apple Events
  1767. These are used to handle communication between several applications running under
  1768.     MacOS on the same, or several interconnected machines.
  1769.     BP2 responds to local and remote Apple Events. Remote events are
  1770.     sent by other machines on a local AppleShare network.
  1771.  
  1772.     You must make sure that the link between applications is activated in the ヤsharing setupユ
  1773.     control pannel on both the client and the server machines. In addition, you must
  1774.     set the sharing of BP2.5.2, the server application, to allow links.
  1775.  
  1776.     A test client application named "TryAppleEvents.fm" running under FileMaker Pro is
  1777.     supplied.  Beware that FileMaker Pro 2.1 does not send events to remote machines.
  1778.  
  1779.     In addition, scripts commands like "AE send" and "AE wait" make it possible to send
  1780.     (local) Apple Events or wait for events sent by other applications.
  1781.  
  1782. BP2 handles the following Apple Events:
  1783. ・ The four core Apple Events of class 'aevt':
  1784.    Open application (ID 'oapp');
  1785.    Open document (ID 'odoc');
  1786.    Print document (ID 'pdoc');
  1787.    Quit application (ID 'quit');
  1788. ・ Events of class 'Bel0', with no parameter, controlling BP2:
  1789.     ID 'beep' beeps BP2 (usefull for tests);
  1790.     ID 'impr' tells BP2 to improvize with the current grammar;
  1791.     ID 'dosc' tells BP2 to run the current script;
  1792.     ID 'quit' aborts current process;
  1793.     ID 'paus' interrupts the current process;
  1794.     ID 'cont' resumes the current process;
  1795.     ID 'fast' tells the inference engine and the interpreter that an item shall be
  1796.         played as soon as possible;
  1797.     ID 'more' tells the inference engine and the interpreter that the current item
  1798.         shall be played again;
  1799.     ID 'skip' tells the interpreter that the item being produced shall not be played.
  1800. ・ Events of class 'Bel0' sending a 'TEXT' parameter and expecting BP2 to do something with it:
  1801.     ID 'scri' loads the text as a BP2 script;
  1802.     ID 'gram' loads the text as a BP2 grammar;
  1803.     ID 'alph' loads the text as a BP2 alphabet;
  1804.     ID 'glos' loads the text as a BP2 glossary;
  1805.     ID 'inte' loads the text as a BP2 interactive file;
  1806.     ID 'data' loads the text as a BP2 data file;
  1807.     ID 'csin' loads the text as a BP2 "Csound instrument file";
  1808.     ID 'name' reads each line in text and tries to assign it to one of the current
  1809.         BP2 files (grammar,alphabet,data,glossary,interaction,time base,
  1810.         keyboard,sound-object prototypes,settings,script). Names may be separated by
  1811.         spaces or returns. Each name should start with a valid BP2 prefix.
  1812.     ID 'play' interprets the text as a musical item in BP2 syntax;
  1813.     ID 'scln' interprets the text as a single BP2 script line, with the
  1814.         advantage of not writing in the Script window;
  1815.     ID 'sett' loads the settings file specified in the text;
  1816.     ID 'conv' sets "note convention" to specified option: English, French,Indian or Keys.
  1817.         (These keywords are NOT case-sensitive.)
  1818. ・ Related topics:
  1819. "Interactive mode"
  1820. "AE send fast"
  1821. "AE send normal"
  1822. "AE wait"
  1823. ### AE send fast class 'ヌAEclassネ' ID 'ヌAEIDネ' to application 'ヌsignatureネ'
  1824. See "AE send normal". The difference lies in the high priority of the event. Use this
  1825.     version if the AE is needed for synchronisation.
  1826. ### AE send normal class 'ヌAEclassネ' ID 'ヌAEIDネ' to application 'ヌsignatureネ'
  1827. This script command sends an "Apple Event" with normal priority to an application
  1828.     running on the same machine.  (Remote Apple Events can be received, not sent,
  1829.     by this version.)
  1830. ・ For high priority, use "AE send fast".
  1831. ・ ヌAEclassネ is the class of the Apple Event. For instance, most events processed by BP2
  1832.     have class 'Bel0'.
  1833. ・ ヌAEIDネ is the identification of the event in that class. See the documentation about the
  1834.     target application. See "Apple Events" for a complete documentation of events
  1835.     processed by BP2.
  1836. ・ ヌsignatureネ is the signature (creator) of the target application. If not documented,
  1837.     it can be found by opening the application with ResEdit and selecting "Get Info..."
  1838.     in the "File" menu.  The signature of BP2 is also 'Bel0'.
  1839. ### AE wait class 'ヌAEclassネ' ID 'ヌAEIDネ'
  1840. This script command forces BP2 to wait for an Apple Event.  (Clicking the mouse also
  1841.     aborts the process.)
  1842. ・ ヌAEclassネ is the class of the Apple Event. For instance, most events processed by BP2
  1843.     have class 'Bel0'.
  1844. ・ ヌAEIDネ is the identification of the event in that class. See the documentation about the
  1845.     target application. See "Apple Events" for a complete documentation of events
  1846.     processed by BP2.
  1847. ・ Related topics:
  1848. "AE send fast"
  1849. "AE send normal"
  1850. ### Time resolution:
  1851. The accuracy of the MIDI driver. Typically 10ms.
  1852. ### Quantization:
  1853. Expected accuracy of the positions of "sound-objects".  This may be set to the maximum
  1854.     auditive tolerance on the perception of durations. 50ms is a good idea.
  1855. ・ A large quantization requires less memory space and computation time.
  1856. ### beat(s) [max 40]
  1857. The number of beats of this tick cycle.
  1858. ### beats
  1859. A "beat" of a sound-object is the time interval defined by its "Reference period".
  1860. ### vel
  1861. Abbreviation for velocity.
  1862. ### ms
  1863. Abbreviation for milliseconds.
  1864. ### Speed ratio:
  1865. Each cycle of ticks may run at a speed different from the time base.
  1866. ### MUTE
  1867. When checked, prevents tick cycle from being heard.
  1868. ### _rest
  1869. See "Undetermined rests"
  1870. ### Reset session time
  1871. Resets a clock counting seconds during BP2's operation. See "Tell session time".
  1872. ### Tell session time
  1873. Tells the time elapsed since BP2 was started, or since "Reset session time" was last called.
  1874. ・ Related topic: "Reset session time".
  1875. ・ This is also a script command.
  1876. ### TryAppleEvents.fm
  1877. A very comprehensive introduction of BP2 in a client-server envoronment will be found in the
  1878.     enclosed data-base "TryAppleEvents.fm" that may be opened under Claris FileMaker Pro.
  1879. ・ Related topics: "Apple Events".
  1880. ### Set weights
  1881. Sets all rule weights in the grammar to a specified value.
  1882. ### Learn weights
  1883. If the grammar is a "true BP grammar", it is possible to derive rule weights from a set of
  1884.     examples, i.e. a set of musical items that could have been produced by the grammar.
  1885. ・ The result is a grammar that produces musical items very close to the ones used for the
  1886.     learning process.
  1887. ・ Before learning weights it is advised to save the current ones. See "Save weights".
  1888. ・ Load the examples to the "Data" window and select them, then click "Learn weights".
  1889. ・ The weight of each rule will be incremented by the number of times it has been used during the
  1890.     parsing of the sample set.
  1891. ・ At the end of parsing the option is given to add infered weights to current weights, or replace
  1892.     current weights with infered weights. The first option is used when several sample sets are
  1893.     needed for learning weights.  The second option prompts confirmations: "Keep infered weights
  1894.     in current grammar?" and "Update grammar with new weights?".
  1895. ・ Related topics:
  1896. "Load weights"
  1897. "Set weights"
  1898. "Save weights"
  1899. ### Show weights
  1900. Displays the grammar with the current values of its rule weights. This is useful when the production
  1901.     of items changes rule weights.
  1902. ### Load weights
  1903. Changes weights in a grammar according to values previously saved in a ヤ-wgユ file. In many cases
  1904.     a warning is issued saying that the grammar has been modified since its weights were saved,
  1905.     because the weight file keeps a record of compilation time. Be careful not to load weights
  1906.     obtained in a grammar with a different arrrangement of rules, otherwise BP2 may crashノ
  1907. ・ Related topics:
  1908. "Save weights"
  1909. "Set weights"
  1910. "Learn weights"
  1911. ### Save weights
  1912. Saves the weights of rules in the current grammar to a ヤ-wgユ weight file.
  1913. ・ Related topics:
  1914. "Load weights"
  1915. "Set weights"
  1916. "Learn weights"
  1917. ### Load decisions
  1918. When producing items step by step in the "Choose candidate rule" mode, it is possible to load
  1919.     decisions taken previously from a decision file.
  1920. ・ Related topic: "Save decisions"
  1921. ### Save decisions
  1922. When producing items step by step in the "Choose candidate rule" mode, it is possible to save
  1923.     the decisions taken so far to a decision file.
  1924. ・ Related topic: "Load decisions"
  1925. ### Check variables
  1926. If a grammar is loaded and compiled, it lists the variables found by the compiler and
  1927. indicates:
  1928. ・ unreachable variables (that can't be generated by the grammar)
  1929. ・ undefined variables (that can't be rewritten by any rule in the grammar)
  1930. ### Pre-roll
  1931. Delay between the first event (MIDI message or Csound event) of a "sound-object" and the
  1932.     beginning of its time-span interval.
  1933. ・ Pre-roll is null by default.
  1934. ・ A negative pre-roll amounts to a silence inserted before the first event of the
  1935.     sound-object. This silence may for instance be ヤprotectedユ thanks to property "Never cover".
  1936. ・ A positive pre-roll allows some events to fall before the on-setting time
  1937.     (beginning) of the sound-object. This may be useful if the sound-object contains an
  1938.     initialisation sequence that should not be part of its time-span interval.
  1939. ・ A positive pre-roll is also the proper way of compensating a mechanical delay in the
  1940.     device producing the sound-object. If for instance the event sequence in the sound-object
  1941.     starts with a NoteOn and the device takes 100ms to react, then setting the pre-roll
  1942.     to 100ms will displace all MIDI messages by 100ms to the past, so that their effects
  1943.     coincide with the desired timings.  Generally you will also set up a positive "post-roll"
  1944.     to compensate the delay in setting off events.
  1945. ・ Remember the formula:
  1946.     Sound-object duration
  1947.         = date of last event - date of first event - pre-roll + post-roll
  1948. ・ Related topics: "Post-roll", "Insert silence"
  1949. ### Post-roll
  1950. Delay between the last event of a "sound-object" and the end of its time-span interval.
  1951. ・ Post-roll is null by default.
  1952. ・ A negative post-roll allows some events to fall beyond the off-setting time (end) of a
  1953.     sound-object. This may be useful if the sound-object contains a final sequence of events
  1954.     that should not be part of its time-span interval.
  1955. ・ A positive post-roll amounts to a silence appended after the last event of the
  1956.     sound-object. This silence may for instance be ヤprotectedユ thanks to property "Never cover".
  1957. ・ A positive post-roll is also the proper way of compensating a mechanical delay in setting-off
  1958.     the device producing the sound-object. If for instance the event sequence in the sound-object
  1959.     ends with a NoteOff and the device takes 50ms to react, then setting the post-roll
  1960.     to 50ms will append a 50ms silence after the sound-object to allow the device to finish its
  1961.     job. This is generally combined with a positive "pre-roll" compensating on-setting delays.
  1962. ・ Remember the formula:
  1963.     Sound-object duration
  1964.         = date of last event - date of first event - pre-roll + post-roll
  1965. ・ Related topics: "Pre-roll", "Append silence"
  1966. ### Cyclic sound-objects
  1967. Any sound-object may contain a periodical part starting at an arbitrary point of its
  1968.     time-span interval (see "Periodical after").
  1969. ・ BP2 handles two typical cases:
  1970.     1) The sequence of events in the periodical part must be sent again
  1971.        to the sound device when that part is repeated.  This happens for instance
  1972.        with sound-objects produced by a MIDI synthesizer.
  1973.     2) Cyclic properties are defined but there is no need to repeat the sequence in
  1974.        the periodical part.  This happens for instance with sound-objects produced
  1975.        by a MIDI sampler: the sampler expects BP2 to trigger the sample with a
  1976.        NoteOn and it takes care of repetitions until a NoteOff is received.
  1977.   In ヤ-mi.abc1ユ, for instance, ヤcycle1ユ illustrates case 1 and ヤcycle2ユ case 2.
  1978. ・ Property "Discard NoteOff's except in last period" is useful with objects in case 2.
  1979.     It prevents the sample from setting off as soon as the first cycle is completed.
  1980.     This property is generally combined with "Don't strike again NoteOn's".
  1981. ・ Property "Force integer number of periods" modifies durations making sure that the
  1982.     last repetition of the cyclic part is complete.
  1983. ・ It is a good idea to place the object's pivot at the beginning of the periodical
  1984.     part.  See "Set pivot".
  1985. ・ If a cyclic sound-object has a negative "post-roll", events falling beyond its off-setting
  1986.     time are ignored.
  1987. ・ Beware when setting the startpoint of the periodical part: the balance between
  1988.     NoteOn's and NoteOff's should be equal in the periodical part.
  1989.     BP2 compensates some balance problems by avoiding two successive NoteOn's on the
  1990.     same key and channel (see "Strike NoteOn's according to default") and appending
  1991.     extra NoteOff's after the item when necessary, but an improper balance may result
  1992.     in unwanted auditive results.
  1993. ・ Related topics: "OK Rescale", "Never rescale", "Dilation ratio range",
  1994.     "Expand at will", "Compress at will", "Periodical after"
  1995. ### Periodical after
  1996. If this option is checked then the sound-object contains a periodical part starting
  1997.     at a defined point of its time-span interval.  The value (in milliseconds or
  1998.     as a percentage of the duration) is the duration of the initial non-cyclic part.
  1999. ・ If the sound-object does not have the "Expand at will" property it makes no difference
  2000.     to specify the initial non-cyclic part in milliseconds or as a percentage of the
  2001.     duration.
  2002. ・ The last events of a cyclic object may be discarded if its "post-roll" is set to a
  2003.     negative value.
  2004. ・ Related topic: "Cyclic sound-objects".
  2005. ### No period
  2006. This sound-object has no periodical part.  This is a default setting.
  2007. ・ Related topic: "Cyclic sound-objects". 
  2008. ### Force integer number of periods
  2009. This property fixes acceptable durations so that the last repetition of the periodical
  2010.     part is complete.
  2011. ・ The property is only needed for sound-objects that do not have the "Expand at will"
  2012.     property, or that have specified limits for the "Dilation ratio range". However, it
  2013.     does not harm to set it with resizable sound-objects.
  2014. ・ Related topic: "Cyclic sound-objects".
  2015. ### Discard NoteOff's except in last period
  2016. This property is used with cyclic sound-objects, notably the ones representing samples
  2017.     on a MIDI sampler.  When the object (or part of it) is repeated, then the NoteOff
  2018.     encountered at the end of the first cycle may set off the sample, so that the sample
  2019.     won't be heard during the following cycles.
  2020. ・ If the property is checked, any NoteOff will be discarded unless it appears in the
  2021.     last cycle.
  2022. ・ With this property it is recommended to check "Don't strike again NoteOn's", so that
  2023.     no unwanted NoteOff's are produced when NoteOn's are found in the repeated cycle.
  2024. ・ Related topic: "Cyclic sound-objects".
  2025. ### Strike again NoteOn's
  2026. If a NoteOn must be sent while the same key of the same channel is already active
  2027.     (because a NoteOn has already been sent) then BP2 will first send a NoteOff to
  2028.     deactivate the key.
  2029. This is the default mode in BP2 (see "Strike NoteOn's according to default").
  2030. ・ Some MIDI sound devices may hang if two successive NoteOn's are sent to the same
  2031.     key and the same channel.  BP2 keeps track of key on/off status to make sure this
  2032.     never happens.
  2033. ・ Related topic: "Don't strike again NoteOn's"
  2034. ### Don't strike again NoteOn's
  2035. If a NoteOn must be sent while the same key of the same channel is already active
  2036.     (because a NoteOn has already been sent) then BP2 will ignore it.
  2037. ・ This is not BP2's default mode: see "Strike NoteOn's according to default"
  2038. ・ Related topics: "Strike again NoteOn's", "Discard NoteOff's except in last period"
  2039. ### Strike NoteOn's according to default
  2040. If a NoteOn must be sent while the same key of the same channel is already active
  2041.     (because a NoteOn has already been sent) then BP2 will behave as per its default
  2042.     setting.
  2043. ・ BP2's default setting is the behaviour defined as "Strike again NoteOn's".
  2044. ・ Related topic: "Don't strike again NoteOn's"
  2045. ### % of duration
  2046. The specified value is a percentage of the sound-object's duration, so the actual
  2047.     value will vary according to its "dilation ratio".
  2048. ### Captureノ
  2049. ・ If a "sound-object prototype" is being displayed:
  2050.     Copies MIDI codes of this "sound-object prototype" to a MIDI stream
  2051.     that may later be pasted to another (or the same) prototype.
  2052. ・ If the "Time base" dialog is being displayed:
  2053.     Capture the current tick cycle and paste it later to a "sound-object prototype".
  2054. ・ Related topic: "Paste MIDI stream"
  2055. ### Capture selection asノ
  2056. Takes the text selection in the current edit window, tries to interpret it as a musical
  2057.     item, using the current alphabet of "terminal symbols", plays it to the MIDI
  2058.     output and capture the MIDI codes so a MIDI stream that may later be pasted to
  2059.     a "sound-object prototype".
  2060. ・ Related topic: "Paste MIDI stream"
  2061. ### Paste MIDI stream
  2062. Takes the currently captured MIDI stream (see "Capture selection asノ" and "Captureノ")
  2063.     and pastes it to the currently displayed "sound-object prototype.
  2064. There are several options:
  2065. ・ Option "Delete and replace"
  2066.     erases the MIDI sequence of the sound-object prototype and replaces it with the
  2067.     MIDI stream.
  2068. ・ Option "Insert at insert point"
  2069.     inserts the MIDI stream at the insert point marked by a vertical red line on the
  2070.     sound-object prototype.
  2071. ・ Option "Replace from insert point"
  2072.     replaces part of the MIDI sequence of the sound-object prototype, starting at the
  2073.     insert point marked by a vertical red line, with the MIDI stream.
  2074. ・ Option "Merge from insert point"
  2075.     merges MIDI messages in the MIDI stream with the ones contained in the sound-object
  2076.     prototype, starting at the insert point marked by a vertical red line.
  2077. ・ Option "Insert before"
  2078.     inserts the MIDI stream before the MIDI sequence of the sound-object prototype.
  2079. ・ Option "Append"
  2080.     appends the MIDI stream after the MIDI sequence of the sound-object prototype.
  2081. ### Write Csound scores
  2082. Allows writing musical items as Csound scores.
  2083. ・ Related topic: "Csound implementation"
  2084. ### Csound implementation
  2085. ・ Csound is a 100% software environment for the design and transformation of digitized
  2086.     sounds.  It runs on different platforms, notably under Unix and MacOS.
  2087. ・ To retrieve Csound, connect to ftp://cecelia.media.mit.edu/pub/Csound/
  2088. ・ BP2 produces Csound scores in the same way it produces MIDI files or real-time MIDI:
  2089.     the Csound option may be selected in the "Output" menu and is saved with the options
  2090.     of the current project or data.
  2091. ・ Once the option has been selected you may produce a Csound score for each musical item
  2092.     produced by a grammar or played from its text representation (a BP2 "score").  Items
  2093.     may be played on real-time MIDI, saved to Csound scores, to MIDI files, or any
  2094.     combination of these.
  2095. ・ If the musical item contains simple notes or sound-objects defined as streams of MIDI
  2096.     messages, BP2 converts the stream to a sequence of Csound events, using the
  2097.     specifications of Csound instruments defined in a "Csound instrument file".  This file
  2098.     can be created and edited in the "Csound instruments" dialog accessible from the
  2099.     "Output" menu.  Csound instrument specifications should contain data that is
  2100.     consistent with the "orchestra" file that will be invoked by Csound when compiling
  2101.     the score produced by BP2.
  2102. ・ If no "Csound instrument file" is loaded, BP2 uses a default instrument which has only
  2103.     the start/end timing arguments and accepts pitch in the "octave point pitch-class"
  2104.     representation.  It is more clever to design a Cound orchestra with instruments
  2105.     accepting parameters like pitchbend, pressure, modulation etc., which BP2 handles
  2106.     in a smart way, using a "vector" representation of continuous parameter changes.
  2107. ・ Sound-object protoypes may also contain Csound scores.  In this case, BP2 creates a
  2108.     score of the musical item arranging these individual scores after changing their
  2109.     timings and arguments according to the musical item and specifications of Csound
  2110.     instruments.  BP2 may therefore produce Csound scores using only Csound events and
  2111.     Csound instrument specifications as an input, thereby bypassing current limitations
  2112.     of MIDI.
  2113. ・ The mapping between Csound argument values (the ones found in the Csound score) and
  2114.     MIDI / BP2 ranges is defined automatically once the user has supplied three typical
  2115.     pairs of values.  BP2 performs linear or quadratic interpolation, plus logarithmic
  2116.     mapping if requested to do so.
  2117. ・ In addition, BP2 handles "Performance parameters" with arbitrary names the values
  2118.     of which may be taken as arguments by Csound instruments.
  2119. ### Pitch argument:
  2120. Put here the index of the argument controlling pitch in this Csound instrument.
  2121. ### Check orchestra file
  2122. This feature not yet implemented.  A future version of BP2 will check the consistency
  2123.     of information contained in this dialog with the one contained in the Csound
  2124.     orchestra file it describes.
  2125. ### Copy fromノ
  2126. Copy instrument specifications from another instrument.
  2127. ### log
  2128. If checked, it means that the 3 values shown on the left are on a logarithmic scale.
  2129. ・ If ヤlogユ is checked on both lines of the mapping, it has no effect.
  2130. ### Assign as default to channel:
  2131. If a number in range 1..16 is indicated here, it means that the corresponding MIDI
  2132.     channel is assigned by default to this Csound instrument.
  2133. ・ This feature facilitates the mapping to Csound of musical items that contain
  2134.     MIDI channel information instead of Csound instrument assignments.
  2135. ### Number of arguments:
  2136. This box contains the maximum number of arguments used by this Csound instrument.
  2137. ・ Csound arguments that are not explicitly mapped to MIDI or BP2 parameters are
  2138.     written as zero values.
  2139. ### octave point pitch-class
  2140. In this representation, pitch is represented as a decimal number in which the integer
  2141.     part is the octave number and the decimal part is the pitch class.
  2142. ・ For example, the following mapping is used:
  2143. C4 = 8.00   D4 = 8.02   E4 = 8.04   F4 = 8.05   G4 = 8.07 
  2144. A4 = 8.09   B4 = 8.11
  2145. ### octave point decimal
  2146. In this representation, pitch is represented as a decimal number in which the integer
  2147.     part is the octave number and the decimal part is the fraction of the octave.
  2148. ・ For example, the following mapping is used:
  2149. C4 = 8.00   D4 = 8.17   E4 = 8.33   F4 = 8.42   G4 = 8.58 
  2150. A4 = 8.75   B4 = 8.92
  2151. ### cps (Hz)
  2152. In this representation, pitch is represented in cycles per second (Hertz).
  2153. ・ For example, the following mapping is used:
  2154. C5 = 523.25   D5 = 587.33   E5 = 659.26   F5 = 698.46   G5 = 783.99
  2155. A5 =  880.00  B5 = 987.77
  2156. ・ These values depend on the settings of the diapason in the "Tuning dialog".
  2157. ### Pitchbend arguments:
  2158. Boxes contain the indexes of arguments sending pitchbend information to this
  2159.     Csound instrument.
  2160. ・ The left box is the argument containing the pitchbend value at the start date of
  2161.     any event related to this instrument.
  2162. ・ The middle box (optional) is the argument containing the pitchbend value at the clip
  2163.     date of any event related to this instrument.
  2164. ・ The rightmost box (optional) is the argument which may refer to a function table
  2165.     for continuous variations.
  2166. ・ If this instrument does not use pitchbend leave boxes empty.
  2167. ### Pitchbender range (cents) +/-
  2168. This box contains the range (in cents) of the pitchbend used in MIDI format, which
  2169.     may have been specified in the data or grammar with "_pitchrange(x)".
  2170. ・ This information may be needed by BP2 for a correct remapping of pitchbend values
  2171.     from MIDI to Csound.
  2172. ### Volume arguments:
  2173. Boxes contain the indexes of arguments sending volume information to this
  2174.     Csound instrument.
  2175. ・ The left box is the argument containing the volume value at the start date of
  2176.     any event related to this instrument.
  2177. ・ The middle box (optional) is the argument containing the volume value at the clip
  2178.     date of any event related to this instrument.
  2179. ・ The rightmost box (optional) is the argument which may refer to a function table
  2180.     for continuous variations.
  2181. ・ If this instrument does not use volume leave boxes empty.
  2182. ### Pressure arguments:
  2183. Boxes contain the indexes of arguments sending channel pressure information to this
  2184.     Csound instrument.
  2185. ・ The left box is the argument containing the pressure value at the start date of
  2186.     any event related to this instrument.
  2187. ・ The middle box (optional) is the argument containing the pressure value at the clip
  2188.     date of any event related to this instrument.
  2189. ・ The rightmost box (optional) is the argument which may refer to a function table
  2190.     for continuous variations.
  2191. ・ If this instrument does not use pressure leave boxes empty.
  2192. ### Modulation arguments:
  2193. Boxes contain the indexes of arguments sending modulation information to this
  2194.     Csound instrument.
  2195. ・ The left box is the argument containing the modulation value at the start date of
  2196.     any event related to this instrument.
  2197. ・ The middle box (optional) is the argument containing the modulation value at the clip
  2198.     date of any event related to this instrument.
  2199. ・ The rightmost box (optional) is the argument which may refer to a function table
  2200.     for continuous variations.
  2201. ・ If this instrument does not use modulation leave boxes empty.
  2202. ### Panoramic arguments:
  2203. Boxes contain the indexes of arguments sending panoramic information to this
  2204.     Csound instrument.
  2205. ・ The left box is the argument containing the panoramic value at the start date of
  2206.     any event related to this instrument.
  2207. ・ The middle box (optional) is the argument containing the panoramic value at the clip
  2208.     date of any event related to this instrument.
  2209. ・ The rightmost box (optional) is the argument which may refer to a function table
  2210.     for continuous variations.
  2211. ・ If this instrument does not use panoramic leave boxes empty.
  2212. ### Attack velocity argument:
  2213. This box contains the index of the argument of this Csound instrument which should
  2214.     contain the NoteOn velocity information.
  2215. ・ Leave the box empty if this instrument does not need the information.
  2216. ### Release velocity argument:
  2217. This box contains the index of the argument of this Csound instrument which should
  2218.     contain the NoteOff velocity information.
  2219. ・ Leave the box empty if this instrument does not need the information.
  2220. ### Dilation ratio argument:
  2221. This box contains the index of the argument of this Csound instrument which should
  2222.     contain the "dilation ratio" information.
  2223. ・ Leave the box empty if this instrument does not need the information.
  2224. ### Csound instruments
  2225. This dialog contains a description of arguments used by an instrument defined in a
  2226.     Csound orchestra file.
  2227. ・ Type command-? and click any button or static text to get the information.
  2228. ・ Clicking the "MOREノ" button displays a few additional arguments that can be mapped to
  2229.     arbitrary "Performance parameters".
  2230. ・ Related topic: "Csound implementation", "Csound instrument file".
  2231. ### Parameter name
  2232. This field is accessed by clicking "MOREノ" in the "Csound instruments" dialog.
  2233. The name of this parameter should match the one of a "Performance parameter" used in
  2234.     the data or grammar, otherwise the argument(s) listed under this name will
  2235.     always remain 0.
  2236. ・ Related topics: "_step", "_cont", "_value", "Performance parameter".
  2237. ### Start argument
  2238. This is the index of the argument used in a Csound event to pass on the value of this
  2239.     parameter, or the initial value in case it varies continuously.
  2240.     (See "Continuous performance control")
  2241. ・ Related topics: "Parameter name", "End argument", "Table argument"
  2242. ### End argument
  2243. This is the index of the argument used in a Csound event to pass on the final value of
  2244.     this parameter in case it varies continuously.
  2245.     (See "Continuous performance control")
  2246. ・ The box may remain empty if the parameter never varies continuously or the Csound
  2247.     instrument is not designed for continuous variation of this parameter.
  2248. ・ Related topics: "Parameter name", "Start argument", "Table argument"
  2249. ### Table argument
  2250. This is the index of the argument used in a Csound event to pass on the index of
  2251.     a function table when the parameter varies continuously.
  2252.     (See "Continuous performance control")
  2253. ・ The box may remain empty if the parameter never varies continuously or the Csound
  2254.     instrument is not designed for continuous variation of this parameter.
  2255. ・ Related topics: "Parameter name", "Start argument", "End argument"
  2256. ### Argument boxes
  2257. ・ The left box contains the index of the Csound instrument argument taking the initial
  2258.     value of this control.
  2259. ・ The middle box is only used for "continuous performance control".  It contains the
  2260.     index of the argument taking the final value of this control.
  2261. ・ The rightmost box contains the index of the argument taking the reference of the
  2262.     function table that BP2 creates for defining complex parameter variations.
  2263.     (See "Continuous performance control")
  2264. ### Continuous performance control
  2265. ・ A few MIDI parameters such as pitchbend, modulation, volume, channel pressure and
  2266.     panoramic may be controlled continuously at a given sampling rate.  For example,
  2267.     a portamento may be produced by the following BP2 score:
  2268.         _pitchcont _pitchrate(20) _pitchbend(6000) A4 B4 _pitchbend(9000)
  2269.     in which BP2 will insert 20 pitchbend messages per second.
  2270. ・ Similarly, arbitrary parameters may be handled with effect only on the Csound
  2271.    output.  (See "Performance parameter").  For instance,
  2272.        _cont(blurb) _value(blurb,154.2) A4 B4 _value(blurb,-21) C4
  2273. ・ The default sampling rate is 50 messages per second.
  2274. ・ Csound events do not allow the insertion of real-time messages. Therefore it is
  2275.     necessary to supply the start and end values of the argument which will be
  2276.     interpolated by the procedure associated with the Csound instrument.  For instance,
  2277.     let the start value of pitchbend be sent as argument 5 and the end value as
  2278.     argument 6.  The score produced by BP2 using the preceding item reads:
  2279.         i1 0 1 8.09 6000 7500
  2280.         i1 1 1 8.11 7500 9000
  2281.    ("8.09" and "8.11" are the respective pitch values of A4 and B4.)
  2282. ・ Another option with Csound is to allow BP2 to create function tables to control
  2283.     the values.  An argument of the instrument should be reserved to passing on the
  2284.     table reference.
  2285. ・ Related topic: "Step performance control"
  2286. ### Step performance control
  2287. ・ By default, all MIDI controls are modified only when explicit values are assigned
  2288.     to them by the BP2 score.  For instance, the following score assigns different
  2289.     modulation values to notes B4, C5 and D5:
  2290.         _modstep A4 _mod(2000) B4 C5 _mod(9000) D5
  2291.     Replacing "_modstep" (which is optional here) with "_modcont" would
  2292.     cause continuous changes of modulation at the rate of 50 messages per second.
  2293. ・ In this example it is advisable to check "Reset controllers" since the final value
  2294.     (9000) is not the same as the initial one (0).
  2295. ・ Related topic: "Continuous performance control"
  2296. ### Store all items to same file
  2297. If checked, all musical items are stored to the same MIDI or Csound score file.
  2298. ### Change name
  2299. Click this button to close the current MIDI or Csound score file and create a new one.
  2300. ### MIDI file format
  2301. BP2 supports three MIDI file formats: types 0, 1 and 2.  Here are tips for choosing
  2302.     an output format:
  2303. ・    If the file will contain a single musical item, or a sequence of items produced by a
  2304.     grammar in the "Improvize" mode, any format is OK.  Keep in mind, however, that
  2305.     format 2 may be rejected by single-track MIDI programs.
  2306. ・    In the current version, BP2 saves each item to a single track. Types 0 and 1 may
  2307.     therefore be considered equivalent.
  2308. ・    If the file will contain several independent musical items (each of which might
  2309.     have a different tempo or time signature), then type 2 must be used.
  2310. ・ BP2 imports files type 0, 1 or 2.  With format 1 it superimposes the tracks even if
  2311.     they have different time signatures.  With format 2, however, an error message
  2312.     will be displayed if the file contains several items.
  2313. ### Prompt for changing file name
  2314. If checked, a new MIDI or Csound score file may be optionaly created for each
  2315.     musical item.
  2316. ### Save each item to a new file
  2317. If checked, a new MIDI or Csound score file is created for each musical item.
  2318. ### Write item immediately
  2319. If checked, musical items are immediately written as MIDI files and/or Csound scores.
  2320. ### Write item after playing on MIDI
  2321. If checked, musical items are first played on MIDI and then optionaly written as
  2322.     MIDI files and/or Csound scores.
  2323. ### Trace time setting
  2324. If checked, displays details of time setting calculations in the "Trace" window.
  2325. ### Trace Csound
  2326. If checked, displays Csound scores in the "Trace" window.
  2327. ### Convert to Csound
  2328. Creates a Csound score attached to this "sound-object prototype" on the basis of events
  2329.     contained in its MIDI stream.
  2330. ・ Beware that the result depends on the "Csound instruments" defined in the currently
  2331.     loaded ヤ-csユ "Csound instrument file".  If some MIDI controls have no
  2332.     mapping to Csound arguments they will simply be ignored.
  2333. ・ If no "Csound instruments" file has been loaded, a default, minimum instrument
  2334.     description is used.
  2335. ・ Related topic: "Csound instrument file"
  2336. ### Import MIDI file
  2337. Reads a MIDI file (type 0, 1, 2) and uses its content as a MIDI stream for this
  2338.     sound-object prototype.
  2339. ### Change instrument file
  2340. Define or change a ヤ-csユ "Csound instrument file" attached to these "sound-object prototypes".
  2341. ### Csound instrument file
  2342. ・ This file contains a description of "Csound instruments" used to convert sound-objects
  2343.     to Csound scores, or to produce Csound scores from musical items containing
  2344.     "sound-objects" and/or "simple notes".
  2345. ・ The file is accessed in the "Csound instruments" dialog of the "Output" menu.
  2346. ・ This description must be consistent with the Csound orchestra file used to
  2347.     play items produced by BP2.  This consistency is not checked by the present
  2348.     version.
  2349. ・ "Sound-object prototypes" may contain a Csound score that must relate to these
  2350.     Csound instruments.
  2351. ### MOREノ
  2352. See "Csound instruments" dialog.
  2353. ### New file
  2354. Creates a new file for storing the information of this window.
  2355. ### Period (cyclic object) / strike mode
  2356. Displays the dialog for setting these parameters.
  2357. ・ Related topics:
  2358. "Cyclic sound-objects"
  2359. "Strike again NoteOn's"
  2360. "Don't strike again NoteOn's"
  2361. ### Continuity / pre-postroll
  2362. Displays the dialog for setting these parameters.
  2363. ・ Related topics:
  2364. "Don't force", "Force", "Allow gap"
  2365. "Post-roll", "Pre-roll"
  2366. ### Cover / truncate / break tempo
  2367. Displays the dialog for setting these parameters.
  2368. ・ Related topics:
  2369. "Cover at will", "Never cover"
  2370. "Truncate at will", "Never truncate"
  2371. "Break at will", "Never break after this object"
  2372. ### Duration / pivot / location
  2373. Opens dialog for changing these properties.
  2374. ・ Related topics:
  2375. "OK Rescale", "Expand at will", "Compress at will", "Dilation ratio range"
  2376. "Set pivot", "Beginning", "Middle"
  2377. "Never relocate", "Relocate at will"
  2378. ### Channel / instrument
  2379. Opens dialog for changing these properties.
  2380. ### Csound file format
  2381. Csound scores are text files saved under either Mac, DOS or Unix format.
  2382. ・ In Mac format, lines terminate with ASCII 13 (return)
  2383. ・ In DOS format, lines terminate with ASCII 13 (return) and ASCII 10 (line feed)
  2384. ・ In Unix format, lines terminate with ASCII 10 (line feed)
  2385. ### ADDval
  2386. If checked, values of this parameter are combined additively.
  2387. ・ The formula is the following:
  2388.     If 'p0' is the parameter value found in the Csound score of a "sound-object", and 'x'
  2389.         the assigned value, the parameter value in the resulting score will be: 
  2390.     p1 = p0 + x - default
  2391.     ('default' is specified in the field "Default value".)
  2392. ・ Related topics: "MULTval", "Default value"
  2393. ### MULTval
  2394. If checked, values of this parameter are combined multiplicatively.
  2395. ・ The formula is the following:
  2396.     If 'p0' is the parameter value found in the Csound score of a "sound-object", and 'x'
  2397.         the assigned value, the parameter value in the resulting score will be: 
  2398.     p1 = p0 * (x / default)
  2399.     ('default' is specified in the field "Default value".)
  2400. ・ Related topics: "ADDval", "Default value"
  2401. ### Default value
  2402. The default value of this Csound parameter.  It is used when "sound-objects" contain
  2403.     incomplete Csound score lines, and in the combination of parameters (see related
  2404.     topics).
  2405. ・ Related topics: "MULTval", "ADDval"
  2406. ### MIDI filter
  2407. Displays the MIDI filter dialog.
  2408. ・ Related topics: "RECEIVE", "TRANSMIT"
  2409. ### RECEIVE... [MIDI filter]
  2410. Items checked in this list indicate the types of MIDI messages that BP2 should receive.
  2411. ・ Related topic: "TRANSMIT"
  2412. ### TRANSMIT... [MIDI filter]
  2413. Items checked in this list indicate the types of MIDI messages that BP2 should transmit.
  2414. ・ Every transmitted message must have been received.  Therefore the 'receive' box is
  2415.     also checked.
  2416. ・ Related topic: "RECEIVE"
  2417. ### END OF BP2 help
  2418.